From 49a79f9dc67747c255c5cacd7ceda3f9be0a5782 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Sat, 22 Aug 2020 21:38:55 -0400 Subject: [PATCH] Rename variables to prevent collision. Emit on db updates. Fix async function not getting arguments. Add icon on vehicles that show up when service is needed. --- src/CMakeLists.txt | 2 +- src/contents/ui/MainPage.qml | 34 ++++++++++++++++++++++++++++++ src/contents/ui/ServiceRecords.qml | 14 ++++++------ src/db/recordanalytics.cpp | 4 ++-- src/db/sqlservicerecord.cpp | 1 + 5 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 78e31c9..7772a45 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,5 +12,5 @@ target_link_libraries(vehiclevoyage Qt5::Core Qt5::Qml Qt5::Quick Qt5::QuickCont install(TARGETS vehiclevoyage ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) if (CMAKE_SYSTEM_NAME STREQUAL "Android") - kirigami_package_breeze_icons(ICONS list-add application-javascript help-about edit-find edit-delete window-close mail-sent globe preferences-system edit-symbolic) + kirigami_package_breeze_icons(ICONS list-add application-javascript help-about edit-find edit-delete window-close mail-sent globe preferences-system edit-symbolic dialog-information) endif() diff --git a/src/contents/ui/MainPage.qml b/src/contents/ui/MainPage.qml index e4af1bc..a14c046 100644 --- a/src/contents/ui/MainPage.qml +++ b/src/contents/ui/MainPage.qml @@ -102,6 +102,40 @@ Kirigami.PageRoute { text: year level: 4 } + Kirigami.Icon { + id: checkupIcon + visible: false + width: Kirigami.Units.iconSizes.smallMedium + height: Kirigami.Units.iconSizes.smallMedium + source: "dialog-information" + isMask: true + color: Kirigami.Theme.activeTextColor + + MouseArea { + id: checkupMouse + hoverEnabled: true + anchors.fill: checkupIcon + } + Controls.ToolTip { + id: checkupTip + text: qsTr("Service is needed") + visible: checkupMouse.containsMouse + } + + Connections { + target: dbAnalytics + function onIsOilChangeNeeded(changeNeeded, vehicleId) { + if(vehicleId == id) { + checkupIcon.visible = changeNeeded; + } + } + } + + Component.onCompleted: { + //Check vehicle warnings + dbAnalytics.checkOilChangeNeededForVehicle(id, appAnalyticsSettings.value("milesForOilChange",5000), appAnalyticsSettings.value("monthsForOilChange",6)); + } + } } } actions: [ diff --git a/src/contents/ui/ServiceRecords.qml b/src/contents/ui/ServiceRecords.qml index 267661f..1b4562d 100644 --- a/src/contents/ui/ServiceRecords.qml +++ b/src/contents/ui/ServiceRecords.qml @@ -8,17 +8,17 @@ Kirigami.PageRoute { Component { Kirigami.ScrollablePage { - property var vehicleId: Kirigami.PageRouter.data.id + property var vehicleIndex: Kirigami.PageRouter.data.id Component.onCompleted: { - recordModel.changeVehicleFilter(vehicleId); + recordModel.changeVehicleFilter(vehicleIndex); //Check vehicle warnings - dbAnalytics.checkOilChangeNeededForVehicle(vehicleId, appAnalyticsSettings.value("milesForOilChange",5000), appAnalyticsSettings.value("monthsForOilChange",6)); + dbAnalytics.checkOilChangeNeededForVehicle(vehicleIndex, appAnalyticsSettings.value("milesForOilChange",5000), appAnalyticsSettings.value("monthsForOilChange",6)); } Connections { target: recordModel function onVehicleUpdated(vehicleId) { //Check vehicle warnings - if(vehicleId == vehicleId) { + if(vehicleId == vehicleIndex) { dbAnalytics.checkOilChangeNeededForVehicle(vehicleId, appAnalyticsSettings.value("milesForOilChange",5000), appAnalyticsSettings.value("monthsForOilChange",6)); } } @@ -29,7 +29,7 @@ Kirigami.PageRoute { text: qsTr("Add Service Record") iconName: "list-add" onTriggered: { - router.pushRoute({"route": "addrecord", "data": vehicleId}); + router.pushRoute({"route": "addrecord", "data": vehicleIndex}); } } ListView { @@ -49,8 +49,8 @@ Kirigami.PageRoute { text: qsTr("You are due for an oil change!") Connections { target: dbAnalytics - function onIsOilChangeNeeded(changeNeeded, vehicle) { - if(vehicle == vehicleId) { + function onIsOilChangeNeeded(changeNeeded, vehicleId) { + if(vehicleId == vehicleIndex) { oilMessage.visible = changeNeeded; } } diff --git a/src/db/recordanalytics.cpp b/src/db/recordanalytics.cpp index bc520f9..91dc414 100644 --- a/src/db/recordanalytics.cpp +++ b/src/db/recordanalytics.cpp @@ -26,7 +26,7 @@ RecordAnalytics::RecordAnalytics(QObject* parent, QSqlDatabase db) : _db(db) void RecordAnalytics::checkOilChangeNeededForVehicle(int vehicleId, int milesForChange, int monthsForChange) { - QtConcurrent::run([&](){ + QtConcurrent::run([&](int vehicleId, int milesForChange, int monthsForChange){ QSqlQuery query = _db.exec("SELECT * FROM records WHERE records.vehicle = "+QString::number(vehicleId)); int milesRecord = query.record().indexOf("miles"); int dateRecord = query.record().indexOf("servicedate"); @@ -50,7 +50,7 @@ void RecordAnalytics::checkOilChangeNeededForVehicle(int vehicleId, int milesFor } else { emit this->isOilChangeNeeded(false, vehicleId); } - }); + },vehicleId, milesForChange, monthsForChange); } diff --git a/src/db/sqlservicerecord.cpp b/src/db/sqlservicerecord.cpp index d717974..7724d66 100644 --- a/src/db/sqlservicerecord.cpp +++ b/src/db/sqlservicerecord.cpp @@ -125,6 +125,7 @@ void SqlServiceRecord::updateRecord(int index, QString serviceProvider, QString this->setRecord(index, record); this->database().commit(); this->select(); + emit this->vehicleUpdated(this->currentVehicleID); } -- GitLab