Store service types that are builtin as numbers to reference in code easier.
This commit is contained in:
@@ -8,6 +8,17 @@ Kirigami.ApplicationWindow {
|
|||||||
id: root
|
id: root
|
||||||
|
|
||||||
title: "Vehicle Voyage"
|
title: "Vehicle Voyage"
|
||||||
|
|
||||||
|
ListModel {
|
||||||
|
id: serviceTypeModel
|
||||||
|
ListElement {value: 0; text: qsTr("Oil and Filter Change");}
|
||||||
|
ListElement {value: 1; text: qsTr("Windshield Wiper Replacement");}
|
||||||
|
ListElement {value: 2; text: qsTr("Coolant Change");}
|
||||||
|
ListElement {value: 3; text: qsTr("Tire Rotation");}
|
||||||
|
ListElement {value: 4; text: qsTr("Timing Belt Change");}
|
||||||
|
ListElement {value: 5; text: qsTr("Serpentine Belt Changed");}
|
||||||
|
ListElement {value: -1; text: qsTr("Other");}
|
||||||
|
}
|
||||||
|
|
||||||
Kirigami.PageRouter {
|
Kirigami.PageRouter {
|
||||||
id: router
|
id: router
|
||||||
@@ -226,7 +237,7 @@ Kirigami.ApplicationWindow {
|
|||||||
text: serviceprovider
|
text: serviceprovider
|
||||||
}
|
}
|
||||||
Controls.Label {
|
Controls.Label {
|
||||||
text: servicetype
|
text: servicetypename
|
||||||
}
|
}
|
||||||
Controls.Label {
|
Controls.Label {
|
||||||
text: new Date(servicedate).toLocaleDateString(Qt.locale())
|
text: new Date(servicedate).toLocaleDateString(Qt.locale())
|
||||||
@@ -288,9 +299,11 @@ Kirigami.ApplicationWindow {
|
|||||||
|
|
||||||
Controls.ComboBox {
|
Controls.ComboBox {
|
||||||
id: typeField
|
id: typeField
|
||||||
model: [qsTr("Oil and Filter Change"), qsTr("Windshield Wiper Replacement"), qsTr("Coolant Change"), qsTr("Tire Rotation"), qsTr("Timing Belt Change"), qsTr("Serpentine Belt Changed"), qsTr("Other")]
|
model: serviceTypeModel
|
||||||
|
textRole: "text"
|
||||||
|
valueRole: "value"
|
||||||
onActivated: {
|
onActivated: {
|
||||||
if(currentText === qsTr("Other")) {
|
if(currentValue == -1) {
|
||||||
customTypeField.visible = true;
|
customTypeField.visible = true;
|
||||||
} else {
|
} else {
|
||||||
customTypeField.visible = false;
|
customTypeField.visible = false;
|
||||||
@@ -347,11 +360,11 @@ Kirigami.ApplicationWindow {
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
var dateObj = Date.fromLocaleDateString(Qt.locale(), dateField.text);
|
var dateObj = Date.fromLocaleDateString(Qt.locale(), dateField.text);
|
||||||
var typeText = typeField.currentText;
|
var typeText = typeField.currentText;
|
||||||
if(typeField.currentText === qsTr("Other")) {
|
if(typeField.currentValue == -1) {
|
||||||
typeText = customTypeField.text;
|
typeText = customTypeField.text;
|
||||||
}
|
}
|
||||||
if(milesField.acceptableInput) {
|
if(milesField.acceptableInput) {
|
||||||
recordModel.addNewRecord(providerField.text, typeText, dateObj.toISOString(), parseInt(milesField.text), notesField.text);
|
recordModel.addNewRecord(providerField.text, typeField.currentValue, typeText, dateObj.toISOString(), parseInt(milesField.text), notesField.text);
|
||||||
router.popRoute();
|
router.popRoute();
|
||||||
} else {
|
} else {
|
||||||
formError.text = qsTr("Invalid number of miles.");
|
formError.text = qsTr("Invalid number of miles.");
|
||||||
|
|||||||
@@ -51,12 +51,13 @@ QVariant SqlServiceRecord::data ( const QModelIndex& index, int role ) const
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SqlServiceRecord::addNewRecord(QString serviceProvider, QString serviceType, QString dateISO, int miles, QString notes)
|
void SqlServiceRecord::addNewRecord(QString serviceProvider, int serviceType, QString serviceTypeName, QString dateISO, int miles, QString notes)
|
||||||
{
|
{
|
||||||
QSqlRecord newItem = this->record();
|
QSqlRecord newItem = this->record();
|
||||||
newItem.setValue("vehicle", this->currentVehicleID);
|
newItem.setValue("vehicle", this->currentVehicleID);
|
||||||
newItem.setValue("serviceprovider", serviceProvider);
|
newItem.setValue("serviceprovider", serviceProvider);
|
||||||
newItem.setValue("servicetype", serviceType);
|
newItem.setValue("servicetype", serviceType);
|
||||||
|
newItem.setValue("servicetypename", serviceTypeName);
|
||||||
newItem.setValue("servicedate", dateISO);
|
newItem.setValue("servicedate", dateISO);
|
||||||
newItem.setValue("miles", miles);
|
newItem.setValue("miles", miles);
|
||||||
newItem.setValue("notes", notes);
|
newItem.setValue("notes", notes);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public:
|
|||||||
explicit SqlServiceRecord(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase());
|
explicit SqlServiceRecord(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase());
|
||||||
QHash<int, QByteArray> roleNames() const override;
|
QHash<int, QByteArray> roleNames() const override;
|
||||||
Q_INVOKABLE QVariant data(const QModelIndex &index, int role) const override;
|
Q_INVOKABLE QVariant data(const QModelIndex &index, int role) const override;
|
||||||
Q_INVOKABLE void addNewRecord(QString serviceProvider, QString serviceType, QString dateISO, int miles, QString notes);
|
Q_INVOKABLE void addNewRecord(QString serviceProvider, int serviceType, QString serviceTypeName, QString dateISO, int miles, QString notes);
|
||||||
Q_INVOKABLE void removeRecord(int index);
|
Q_INVOKABLE void removeRecord(int index);
|
||||||
Q_INVOKABLE void changeVehicleFilter(int id);
|
Q_INVOKABLE void changeVehicleFilter(int id);
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
|||||||
//Create table structure
|
//Create table structure
|
||||||
db.open();
|
db.open();
|
||||||
db.exec("CREATE TABLE vehicles (id INTEGER PRIMARY KEY, name TEXT, maker TEXT, vmodel TEXT, year INTEGER, image TEXT, vin TEXT);");
|
db.exec("CREATE TABLE vehicles (id INTEGER PRIMARY KEY, name TEXT, maker TEXT, vmodel TEXT, year INTEGER, image TEXT, vin TEXT);");
|
||||||
db.exec("CREATE TABLE records (id INTEGER PRIMARY KEY, vehicle INTEGER, serviceprovider TEXT, servicetype TEXT, servicedate TEXT, miles INTEGER, notes TEXT);");
|
db.exec("CREATE TABLE records (id INTEGER PRIMARY KEY, vehicle INTEGER, serviceprovider TEXT, servicetype INTEGER, servicetypename TEXT, servicedate TEXT, miles INTEGER, notes TEXT);");
|
||||||
db.commit();
|
db.commit();
|
||||||
db.close();
|
db.close();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user