diff --git a/src/app/BusDelegate.qml b/src/app/BusDelegate.qml index d4025f1..7a52a35 100644 --- a/src/app/BusDelegate.qml +++ b/src/app/BusDelegate.qml @@ -1,94 +1,102 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "qrc:///images/bus.svg" + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { - text: i18n("🚌 %1", reservationFor.busName + " " + reservationFor.busNumber) + text: reservationFor.busName + " " + reservationFor.busNumber color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale Layout.fillWidth: true } QQC2.Label { text: Localizer.formatTime(reservationFor, "departureTime") color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale } } } contentItem: ColumnLayout { id: topLayout QQC2.Label { text: i18n("From: %1", reservationFor.departureStation.name) color: Kirigami.Theme.textColor } App.PlaceDelegate { place: reservationFor.departureStation Layout.fillWidth: true } Kirigami.Separator { Layout.fillWidth: true } QQC2.Label { text: i18n("To: %1", reservationFor.arrivalStation.name) color: Kirigami.Theme.textColor } App.PlaceDelegate { place: reservationFor.arrivalStation Layout.fillWidth: true } QQC2.Label { text: i18n("Arrival: %1", Localizer.formatDateTime(reservationFor, "arrivalTime")) color: Kirigami.Theme.textColor } } Component { id: detailsComponent App.BusPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 3d6f011..4114274 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -1,107 +1,109 @@ set(itinerary_srcs countryinformation.cpp pkpassmanager.cpp reservationmanager.cpp timelinemodel.cpp ) ecm_qt_declare_logging_category(itinerary_srcs HEADER logging.h IDENTIFIER Log CATEGORY_NAME org.kde.itinerary ) add_library(itinerary STATIC ${itinerary_srcs}) target_link_libraries(itinerary PUBLIC itinerary-weather KPim::Itinerary KPim::PkPass KF5::I18n Qt5::Network ) if (Qt5QuickCompiler_FOUND) qtquick_compiler_add_resources(qml_srcs qml.qrc) else () set(qml_srcs qml.qrc) endif() add_executable(itinerary-app main.cpp applicationcontroller.cpp countrymodel.cpp localizer.cpp pkpassimageprovider.cpp settings.cpp tickettokenmodel.cpp util.cpp ${qml_srcs} ) target_include_directories(itinerary-app PRIVATE ${CMAKE_BINARY_DIR}) target_link_libraries(itinerary-app PRIVATE itinerary Qt5::Quick KF5::Contacts ) if (ANDROID) # explicitly add runtime dependencies and transitive link dependencies, # so androiddeployqt picks them up target_link_libraries(itinerary-app PRIVATE KF5::Archive KF5::Kirigami2 Qt5::AndroidExtras Qt5::Svg KF5::Prison OpenSSL::SSL ) kirigami_package_breeze_icons(ICONS checkmark dialog-cancel document-edit document-open document-save edit-delete edit-download + go-home go-next-symbolic help-about map-symbolic + meeting-attending settings-configure view-calendar-day view-refresh weather-clear weather-clear-night weather-few-clouds weather-few-clouds-night weather-clouds weather-clouds-night weather-showers-day weather-showers-night weather-showers-scattered-day weather-showers-scattered-night weather-snow-scattered-day weather-snow-scattered-night weather-storm-day weather-storm-night weather-many-clouds weather-fog weather-showers weather-showers-scattered weather-hail weather-snow weather-snow-scattered weather-storm ) else () target_link_libraries(itinerary-app PRIVATE KF5::DBusAddons Qt5::Positioning Qt5::Widgets ) set_target_properties(itinerary-app PROPERTIES OUTPUT_NAME "itinerary") endif() install(TARGETS itinerary-app ${INSTALL_TARGETS_DEFAULT_ARGS}) if (NOT ANDROID) install(PROGRAMS org.kde.itinerary.desktop DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES org.kde.itinerary.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) endif() diff --git a/src/app/EventDelegate.qml b/src/app/EventDelegate.qml index 325d86c..97f957f 100644 --- a/src/app/EventDelegate.qml +++ b/src/app/EventDelegate.qml @@ -1,79 +1,87 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "meeting-attending" + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { - text: i18n("📅 %1", reservationFor.name) + text: reservationFor.name font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale color: Kirigami.Theme.textColor Layout.fillWidth: true } QQC2.Label { text: Localizer.formatTime(reservationFor, "startDate") font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale } } } contentItem: ColumnLayout { id: topLayout QQC2.Label { text: reservationFor.location.name } App.PlaceDelegate { place: reservationFor.location Layout.fillWidth: true } QQC2.Label { text: i18n("End time: %1", Localizer.formatDateTime(reservationFor, "endDate")); } } Component { id: detailsComponent App.EventPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/FlightDelegate.qml b/src/app/FlightDelegate.qml index 3c0ddf6..d06d04c 100644 --- a/src/app/FlightDelegate.qml +++ b/src/app/FlightDelegate.qml @@ -1,130 +1,138 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root function airportDisplayString(airport) { if (airport.name) { return airport.name; } return airport.iataCode; } function seatString() { var s = new Array(); for (var i = 0; i < root.resIds.length; ++i) { var res = _reservationManager.reservation(root.resIds[i]); if (res.airplaneSeat) s.push(res.airplaneSeat); } if (s.length === 0) return "-"; return s.join(", "); } header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "qrc:///images/flight.svg" + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { - text: i18n("✈ %1 %2 → %3", + text: i18n("%1 %2 → %3", reservationFor.airline.iataCode + " " + reservationFor.flightNumber, reservationFor.departureAirport.iataCode, reservationFor.arrivalAirport.iataCode) color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale Layout.fillWidth: true } QQC2.Label { text: isNaN(reservationFor.boardingTime.getTime()) ? Localizer.formatTime(reservationFor, "departureTime") : Localizer.formatTime(reservationFor, "boardingTime") color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale } } } contentItem: ColumnLayout { id: topLayout QQC2.Label { text: i18n("Departure from %1: %2", airportDisplayString(reservationFor.departureAirport), Localizer.formatTime(reservationFor, "departureTime") + " ") color: Kirigami.Theme.textColor wrapMode: Text.WordWrap Layout.fillWidth: true } App.PlaceDelegate { place: reservationFor.departureAirport Layout.fillWidth: true } QQC2.Label { text: i18n("Terminal: %1 Gate: %2 Seat: %3", reservationFor.departureTerminal ? reservationFor.departureTerminal : "-", reservationFor.departureGate ? reservationFor.departureGate : "-", seatString()) color: Kirigami.Theme.textColor } Kirigami.Separator { Layout.fillWidth: true } QQC2.Label { text: i18n("Arrival at %1: %2", airportDisplayString(reservationFor.arrivalAirport), Localizer.formatDateTime(reservationFor, "arrivalTime") + " ") color: Kirigami.Theme.textColor wrapMode: Text.WordWrap Layout.fillWidth: true } App.PlaceDelegate { place: reservationFor.arrivalAirport Layout.fillWidth: true } } Component { id: detailsComponent App.FlightPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/HotelDelegate.qml b/src/app/HotelDelegate.qml index d2167d0..70ac45e 100644 --- a/src/app/HotelDelegate.qml +++ b/src/app/HotelDelegate.qml @@ -1,83 +1,90 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "go-home" + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { text: root.rangeType == TimelineModel.RangeEnd ? - i18n("🏨 Check-out %1", reservationFor.name) : - i18n("🏨 %1", reservationFor.name) + i18n("Check-out %1", reservationFor.name) : reservationFor.name color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale Layout.fillWidth: true } } } contentItem: ColumnLayout { id: topLayout App.PlaceDelegate { place: reservationFor Layout.fillWidth: true } QQC2.Label { text: i18n("Check-in time: %1", Localizer.formatTime(reservation, "checkinTime")) color: Kirigami.Theme.textColor visible: root.rangeType == TimelineModel.RangeBegin } QQC2.Label { text: root.rangeType == TimelineModel.RangeBegin ? i18n("Check-out time: %1", Localizer.formatDateTime(reservation, "checkoutTime")) : i18n("Check-out time: %1", Localizer.formatTime(reservation, "checkoutTime")) color: Kirigami.Theme.textColor } } Component { id: detailsComponent App.HotelPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/RestaurantDelegate.qml b/src/app/RestaurantDelegate.qml index f2db8ca..4c6190c 100644 --- a/src/app/RestaurantDelegate.qml +++ b/src/app/RestaurantDelegate.qml @@ -1,74 +1,82 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "qrc:///images/foodestablishment.svg" + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { - text: i18n("🍴 %1", reservationFor.name) + text: reservationFor.name color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale Layout.fillWidth: true } QQC2.Label { text: Localizer.formatTime(reservation, "startTime") color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale } } } contentItem: ColumnLayout { id: topLayout App.PlaceDelegate { place: reservationFor Layout.fillWidth: true } } Component { id: detailsComponent App.RestaurantPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/TouristAttractionDelegate.qml b/src/app/TouristAttractionDelegate.qml index 3673f9a..20b4ba7 100644 --- a/src/app/TouristAttractionDelegate.qml +++ b/src/app/TouristAttractionDelegate.qml @@ -1,75 +1,83 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root readonly property var touristAttraction: _reservationManager.reservation(root.resIds[0]).touristAttraction header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "meeting-attending" // TODO better icon, e.g. something like 🎢? + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { - text: i18n("🎢 %1", touristAttraction.name) + text: touristAttraction.name color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale Layout.fillWidth: true } QQC2.Label { text: Localizer.formatTime(reservation, "arrivalTime") color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale } } } contentItem: ColumnLayout { id: topLayout App.PlaceDelegate { place: touristAttraction Layout.fillWidth: true } } Component { id: detailsComponent App.TouristAttractionPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/TrainDelegate.qml b/src/app/TrainDelegate.qml index f5e57b1..a68d0ce 100644 --- a/src/app/TrainDelegate.qml +++ b/src/app/TrainDelegate.qml @@ -1,105 +1,113 @@ /* Copyright (C) 2018 Volker Krause This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ import QtQuick 2.5 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.1 as QQC2 import org.kde.kirigami 2.4 as Kirigami import org.kde.itinerary 1.0 import "." as App App.TimelineDelegate { id: root header: Rectangle { id: headerBackground Kirigami.Theme.colorSet: Kirigami.Theme.Complementary Kirigami.Theme.inherit: false color: Kirigami.Theme.backgroundColor implicitHeight: headerLayout.implicitHeight + Kirigami.Units.largeSpacing * 2 anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: -root.rightPadding RowLayout { id: headerLayout anchors.fill: parent anchors.margins: Kirigami.Units.largeSpacing + Kirigami.Icon { + source: "qrc:///images/train.svg" + width: Kirigami.Units.iconSizes.smallMedium + height: width + color: Kirigami.Theme.textColor + isMask: true + } + QQC2.Label { - text: i18n("🚄 %1", reservationFor.trainName + " " + reservationFor.trainNumber) + text: reservationFor.trainName + " " + reservationFor.trainNumber color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale Layout.fillWidth: true } QQC2.Label { text: Localizer.formatTime(reservationFor, "departureTime") color: Kirigami.Theme.textColor font.pointSize: Kirigami.Theme.defaultFont.pointSize * root.headerFontScale } } } contentItem: ColumnLayout { id: topLayout QQC2.Label { text: i18n("Departure from %1 on platform %2", reservationFor.departureStation.name, reservationFor.departurePlatform ? reservationFor.departurePlatform : "-") color: Kirigami.Theme.textColor wrapMode: Text.WordWrap Layout.fillWidth: true } App.PlaceDelegate { place: reservationFor.departureStation Layout.fillWidth: true } // TODO reserved seat Kirigami.Separator { Layout.fillWidth: true } QQC2.Label { text: i18n("Arrival at %1 on platform %2", reservationFor.arrivalStation.name, reservationFor.arrivalPlatform ? reservationFor.arrivalPlatform : "-") color: Kirigami.Theme.textColor wrapMode: Text.WordWrap Layout.fillWidth: true } QQC2.Label { text: i18n("Arrival time: %1", Localizer.formatDateTime(reservationFor, "arrivalTime")) color: Kirigami.Theme.textColor wrapMode: Text.WordWrap Layout.fillWidth: true } App.PlaceDelegate { place: reservationFor.arrivalStation Layout.fillWidth: true } } Component { id: detailsComponent App.TrainPage { resIds: root.resIds } } onClicked: applicationWindow().pageStack.push(detailsComponent); } diff --git a/src/app/images/bus.svg b/src/app/images/bus.svg new file mode 100644 index 0000000..b13cb89 --- /dev/null +++ b/src/app/images/bus.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/src/app/images/flight.svg b/src/app/images/flight.svg new file mode 100644 index 0000000..86fd874 --- /dev/null +++ b/src/app/images/flight.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/src/app/images/foodestablishment.svg b/src/app/images/foodestablishment.svg new file mode 100644 index 0000000..ea090c3 --- /dev/null +++ b/src/app/images/foodestablishment.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/src/app/images/train.svg b/src/app/images/train.svg new file mode 100644 index 0000000..fbde2c5 --- /dev/null +++ b/src/app/images/train.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/src/app/qml.qrc b/src/app/qml.qrc index 93aadfd..5963785 100644 --- a/src/app/qml.qrc +++ b/src/app/qml.qrc @@ -1,42 +1,47 @@ qtquickcontrols2.conf main.qml AboutPage.qml BoardingPass.qml BusDelegate.qml BusPage.qml CountryInfoDelegate.qml DateInput.qml DateTimeEdit.qml DetailsPage.qml EditorPage.qml EventDelegate.qml EventPage.qml FlightDelegate.qml FlightEditor.qml FlightPage.qml HotelDelegate.qml HotelPage.qml ImportDialog.qml PkPassPage.qml PlaceDelegate.qml PlaceEditor.qml RestaurantDelegate.qml RestaurantEditor.qml RestaurantPage.qml SettingsPage.qml TicketTokenDelegate.qml TimeInput.qml TimelineDelegate.qml TimelinePage.qml TouristAttractionDelegate.qml TouristAttractionPage.qml TrainDelegate.qml TrainPage.qml WeatherForecastDelegate.qml +android/ImportDialog.qml + + images/bus.svg + images/flight.svg + images/foodestablishment.svg + images/train.svg