Have record class emit when data has changed and update warnings when data has changed.

This commit is contained in:
2020-07-29 12:01:23 -04:00
parent 369becbf8e
commit 0a4192ca1c
3 changed files with 15 additions and 2 deletions

View File

@@ -262,8 +262,18 @@ Kirigami.ApplicationWindow {
property var serviceId: Kirigami.PageRouter.data.id property var serviceId: Kirigami.PageRouter.data.id
Component.onCompleted: { Component.onCompleted: {
recordModel.changeVehicleFilter(serviceId); recordModel.changeVehicleFilter(serviceId);
//Check vehicle warnings
dbAnalytics.checkOilChangeNeededForVehicle(serviceId); dbAnalytics.checkOilChangeNeededForVehicle(serviceId);
} }
Connections {
target: recordModel
function onVehicleUpdated(vehicleId) {
//Check vehicle warnings
if(vehicleId == serviceId) {
dbAnalytics.checkOilChangeNeededForVehicle(vehicleId);
}
}
}
id: serviceRecordPage id: serviceRecordPage
title: qsTr("Service Records for ") + Kirigami.PageRouter.data.name title: qsTr("Service Records for ") + Kirigami.PageRouter.data.name
mainAction: Kirigami.Action { mainAction: Kirigami.Action {
@@ -290,7 +300,7 @@ Kirigami.ApplicationWindow {
text: qsTr("You are due for an oil change!") text: qsTr("You are due for an oil change!")
Connections { Connections {
target: dbAnalytics target: dbAnalytics
onIsOilChangeNeeded: { function onIsOilChangeNeeded(changeNeeded) {
oilMessage.visible = changeNeeded; oilMessage.visible = changeNeeded;
} }
} }
@@ -441,7 +451,6 @@ Kirigami.ApplicationWindow {
} }
if(milesField.acceptableInput) { if(milesField.acceptableInput) {
recordModel.addNewRecord(providerField.text, typeField.currentValue, typeText, dateObj.toISOString(), parseInt(milesField.text), notesField.text); recordModel.addNewRecord(providerField.text, typeField.currentValue, typeText, dateObj.toISOString(), parseInt(milesField.text), notesField.text);
//TODO: check if emit signal to car warnings.
router.popRoute(); router.popRoute();
} else { } else {
formError.text = qsTr("Invalid number of miles."); formError.text = qsTr("Invalid number of miles.");

View File

@@ -71,6 +71,7 @@ void SqlServiceRecord::addNewRecord(int vehicleId, QString serviceProvider, int
printf("inserted new service record\n"); printf("inserted new service record\n");
this->database().commit(); this->database().commit();
this->select(); this->select();
emit this->vehicleUpdated(this->currentVehicleID);
} else { } else {
this->database().rollback(); this->database().rollback();
printf("database error\n"); printf("database error\n");
@@ -84,6 +85,7 @@ void SqlServiceRecord::removeRecord(int index)
printf("removed service record\n"); printf("removed service record\n");
this->database().commit(); this->database().commit();
this->select(); this->select();
emit this->vehicleUpdated(this->currentVehicleID);
} else { } else {
this->database().rollback(); this->database().rollback();
printf("database error\n"); printf("database error\n");

View File

@@ -35,6 +35,8 @@ public:
Q_INVOKABLE void removeRecord(int index); Q_INVOKABLE void removeRecord(int index);
Q_INVOKABLE void changeVehicleFilter(int id); Q_INVOKABLE void changeVehicleFilter(int id);
signals:
void vehicleUpdated(int vehicleId);
private: private:
int currentVehicleID = 0; int currentVehicleID = 0;