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.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user