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
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.");

View File

@@ -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");

View File

@@ -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;