84 lines
3.5 KiB
QML
84 lines
3.5 KiB
QML
import QtQuick 2.14
|
|
import org.kde.kirigami 2.12 as Kirigami
|
|
import QtQuick.Controls 2.14 as Controls
|
|
import QtQuick.Layouts 1.14 as Layouts
|
|
|
|
Kirigami.PageRoute {
|
|
name: "settings"
|
|
Component {
|
|
Kirigami.Page {
|
|
id: settingsPage
|
|
title: qsTr("Settings")
|
|
Layouts.ColumnLayout {
|
|
anchors.fill: parent
|
|
Kirigami.InlineMessage {
|
|
Layouts.Layout.fillWidth: true
|
|
Layouts.Layout.leftMargin: 10
|
|
Layouts.Layout.rightMargin: 10
|
|
z: 9997
|
|
type: Kirigami.MessageType.Error
|
|
showCloseButton: true
|
|
id: formError
|
|
}
|
|
Kirigami.FormLayout {
|
|
Layouts.Layout.alignment: Qt.AlignHCenter
|
|
Layouts.Layout.fillWidth: true
|
|
width: settingsPage.width
|
|
Item {
|
|
Kirigami.FormData.label: qsTr("Warning Thresholds")
|
|
Kirigami.FormData.isSection: true
|
|
}
|
|
Controls.TextField {
|
|
id: oilChangeMiles
|
|
Kirigami.FormData.label: qsTr("Oil Change Miles")
|
|
text: appAnalyticsSettings.value("milesForOilChange",5000)
|
|
validator: IntValidator {
|
|
bottom: 1
|
|
top: 500000
|
|
}
|
|
}
|
|
Controls.TextField {
|
|
id: oilChangeMonths
|
|
Kirigami.FormData.label: qsTr("Oil Change Months")
|
|
text: appAnalyticsSettings.value("monthsForOilChange",6)
|
|
validator: IntValidator {
|
|
bottom: 1
|
|
top: 500000
|
|
}
|
|
}
|
|
|
|
Layouts.RowLayout {
|
|
|
|
Controls.Button {
|
|
text: qsTr("Save")
|
|
highlighted: true
|
|
onClicked: {
|
|
if(oilChangeMiles.acceptableInput) {
|
|
if(oilChangeMonths.acceptableInput) {
|
|
appAnalyticsSettings.setValue("milesForOilChange", parseInt(oilChangeMiles.text));
|
|
appAnalyticsSettings.setValue("monthsForOilChange", parseInt(oilChangeMonths.text));
|
|
router.popRoute();
|
|
} else {
|
|
formError.text = qsTr("Number of Months is invalid!");
|
|
formError.visible = true;
|
|
}
|
|
} else {
|
|
formError.text = qsTr("Number of Miles is invalid!");
|
|
formError.visible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
Controls.Button {
|
|
text: qsTr("Cancel")
|
|
onClicked: {
|
|
router.popRoute();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|