From 0a4192ca1c39e904c9632f6e355c8ba0964ecefe Mon Sep 17 00:00:00 2001 From: Kevin Whitaker <eyecreate@eyecreate.org> Date: Wed, 29 Jul 2020 12:01:23 -0400 Subject: [PATCH] Have record class emit when data has changed and update warnings when data has changed. --- src/contents/ui/main.qml | 13 +++++++++++-- src/db/sqlservicerecord.cpp | 2 ++ src/db/sqlservicerecord.h | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml index a6511c4..096101b 100644 --- a/src/contents/ui/main.qml +++ b/src/contents/ui/main.qml @@ -262,8 +262,18 @@ Kirigami.ApplicationWindow { property var serviceId: Kirigami.PageRouter.data.id Component.onCompleted: { recordModel.changeVehicleFilter(serviceId); + //Check vehicle warnings dbAnalytics.checkOilChangeNeededForVehicle(serviceId); } + Connections { + target: recordModel + function onVehicleUpdated(vehicleId) { + //Check vehicle warnings + if(vehicleId == serviceId) { + dbAnalytics.checkOilChangeNeededForVehicle(vehicleId); + } + } + } id: serviceRecordPage title: qsTr("Service Records for ") + Kirigami.PageRouter.data.name mainAction: Kirigami.Action { @@ -290,7 +300,7 @@ Kirigami.ApplicationWindow { text: qsTr("You are due for an oil change!") Connections { target: dbAnalytics - onIsOilChangeNeeded: { + function onIsOilChangeNeeded(changeNeeded) { oilMessage.visible = changeNeeded; } } @@ -441,7 +451,6 @@ Kirigami.ApplicationWindow { } if(milesField.acceptableInput) { recordModel.addNewRecord(providerField.text, typeField.currentValue, typeText, dateObj.toISOString(), parseInt(milesField.text), notesField.text); - //TODO: check if emit signal to car warnings. router.popRoute(); } else { formError.text = qsTr("Invalid number of miles."); diff --git a/src/db/sqlservicerecord.cpp b/src/db/sqlservicerecord.cpp index 7509c8e..ed7a842 100644 --- a/src/db/sqlservicerecord.cpp +++ b/src/db/sqlservicerecord.cpp @@ -71,6 +71,7 @@ void SqlServiceRecord::addNewRecord(int vehicleId, QString serviceProvider, int printf("inserted new service record\n"); this->database().commit(); this->select(); + emit this->vehicleUpdated(this->currentVehicleID); } else { this->database().rollback(); printf("database error\n"); @@ -84,6 +85,7 @@ void SqlServiceRecord::removeRecord(int index) printf("removed service record\n"); this->database().commit(); this->select(); + emit this->vehicleUpdated(this->currentVehicleID); } else { this->database().rollback(); printf("database error\n"); diff --git a/src/db/sqlservicerecord.h b/src/db/sqlservicerecord.h index 6816686..8069207 100644 --- a/src/db/sqlservicerecord.h +++ b/src/db/sqlservicerecord.h @@ -35,6 +35,8 @@ public: Q_INVOKABLE void removeRecord(int index); Q_INVOKABLE void changeVehicleFilter(int id); +signals: + void vehicleUpdated(int vehicleId); private: int currentVehicleID = 0; -- GitLab