diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml index a6511c4fe9457b1880033b9a48006a066eb91e49..096101b134c8079bf1a2a5461c40cc956f35c776 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 7509c8ee23138770a1f88471550e028585142139..ed7a842c7065e6ba3ae872fdac9f3008932979e2 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 6816686d716a686f7253a34d72255df3ece5f093..8069207977c0ac52dab6773bd31f20806bc18efc 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;