diff options
author | Joakim Bygdell <j.bygdell@gmail.com> | 2017-07-20 19:39:55 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-07-23 03:20:58 +0900 |
commit | 6655b37add8c1dbee23d734fa6eb8f4c0bec9aae (patch) | |
tree | 2d94e6de766b5a3b24f45114e342673b574d0c88 /mobile-widgets/qml/Settings.qml | |
parent | e80132cdef038fdff253f59979fbb8789e325315 (diff) | |
download | subsurface-6655b37add8c1dbee23d734fa6eb8f4c0bec9aae.tar.gz |
Mobile: consolidate settings to one page and menu entry
Addresses: #492
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Had a bit of rebase issue with this one.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Diffstat (limited to 'mobile-widgets/qml/Settings.qml')
-rw-r--r-- | mobile-widgets/qml/Settings.qml | 415 |
1 files changed, 415 insertions, 0 deletions
diff --git a/mobile-widgets/qml/Settings.qml b/mobile-widgets/qml/Settings.qml new file mode 100644 index 000000000..3a0e36478 --- /dev/null +++ b/mobile-widgets/qml/Settings.qml @@ -0,0 +1,415 @@ +// SPDX-License-Identifier: GPL-2.0 +import QtQuick 2.3 +import QtQuick.Controls 2.0 +import QtQuick.Window 2.2 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.1 +import org.kde.kirigami 2.0 as Kirigami +import org.subsurfacedivelog.mobile 1.0 + +Kirigami.ScrollablePage { + objectName: "Settings" + title: qsTr("Settings") + anchors.margins: Kirigami.Units.gridUnit / 2 + + actions { + main: Kirigami.Action { + text: qsTr("Save") + iconName: "document-save" + onTriggered: { + manager.distanceThreshold = distanceThreshold.text + manager.timeThreshold = timeThreshold.text + manager.theme = subsurfaceTheme.currentTheme + manager.savePreferences() + stackView.pop() + } + } + } + ColumnLayout { + width: parent.width - Kirigami.Units.gridUnit + CloudCredentials { + id: cloudCredentials + Layout.fillWidth: true + Layout.margins: Kirigami.Units.gridUnit + Layout.topMargin: 0 + property int headingLevel: 4 + } + Rectangle { + color: subsurfaceTheme.darkerPrimaryColor + height: 1 + opacity: 0.5 + Layout.columnSpan: 3 + Layout.fillWidth: true + } + GridLayout { + id: themeSettings + columns: 2 + Layout.bottomMargin: Kirigami.Units.gridUnit + + Kirigami.Heading { + text: qsTr("Theme") + color: subsurfaceTheme.textColor + level: 4 + Layout.topMargin: Kirigami.Units.largeSpacing + Layout.bottomMargin: Kirigami.Units.largeSpacing / 2 + Layout.columnSpan: 2 + } + RadioButton { + id: bluebutton + checked: subsurfaceTheme.currentTheme === "Blue" + onClicked: { + blueTheme() + } + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + x: bluebutton.leftPadding + y: parent.height / 2 - height / 2 + radius: 4 + border.color: bluebutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + color: subsurfaceTheme.backgroundColor + + Rectangle { + width: 12 + height: 12 + x: 4 + y: 4 + radius: 3 + color: bluebutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + visible: bluebutton.checked + } + } + } + Row { + Label { + text: qsTr("Blue") + color: subsurfaceTheme.textColor + anchors.verticalCenter: blueRect.verticalCenter + rightPadding: Kirigami.Units.gridUnit + } + Rectangle { + id: blueRect + color: subsurfaceTheme.blueBackgroundColor + border.color: "black" + width: sampleRegularBlue.width + 2 * Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit * 2 + Text { + id: sampleRegularBlue + text: qsTr("regular text") + color: subsurfaceTheme.blueTextColor + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + } + } + Rectangle { + color: subsurfaceTheme.bluePrimaryColor + border.color: "black" + width: sampleHighlightBlue.width + 2 * Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit * 2 + Text { + id: sampleHighlightBlue + text: qsTr("Highlight") + color: subsurfaceTheme.bluePrimaryTextColor + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + } + } + } + + RadioButton { + id: pinkbutton + checked: subsurfaceTheme.currentTheme === "Pink" + onClicked: { + pinkTheme() + } + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + x: pinkbutton.leftPadding + y: parent.height / 2 - height / 2 + radius: 4 + border.color: pinkbutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + color: subsurfaceTheme.backgroundColor + + Rectangle { + width: 12 + height: 12 + x: 4 + y: 4 + radius: 3 + color: pinkbutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + visible: pinkbutton.checked + } + } + } + Row { + Label { + text: qsTr("Pink") + color: subsurfaceTheme.textColor + anchors.verticalCenter: pinkRect.verticalCenter + rightPadding: Kirigami.Units.gridUnit + } + Rectangle { + id: pinkRect + color: subsurfaceTheme.pinkBackgroundColor + border.color: "black" + width: sampleRegularPink.width + 2 * Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit * 2 + Text { + id: sampleRegularPink + text: qsTr("regular text") + color: subsurfaceTheme.pinkTextColor + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + } + } + Rectangle { + color: subsurfaceTheme.pinkPrimaryColor + border.color: "black" + width: sampleHighlightPink.width + 2 * Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit * 2 + Text { + id: sampleHighlightPink + text: qsTr("Highlight") + color: subsurfaceTheme.pinkPrimaryTextColor + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + } + } + } + + RadioButton { + id: darkbutton + checked: subsurfaceTheme.currentTheme === "Dark" + onClicked: { + darkTheme() + } + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + x: darkbutton.leftPadding + y: parent.height / 2 - height / 2 + radius: 4 + border.color: darkbutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + color: subsurfaceTheme.backgroundColor + + Rectangle { + width: 12 + height: 12 + x: 4 + y: 4 + radius: 3 + color: darkbutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + visible: darkbutton.checked + } + } + } + Row { + Label { + text: qsTr("Dark") + color: subsurfaceTheme.textColor + anchors.verticalCenter: blackRect.verticalCenter + rightPadding: Kirigami.Units.gridUnit + } + Rectangle { + id: blackRect + color: subsurfaceTheme.darkBackgroundColor + border.color: "black" + width: sampleRegularDark.width + 2 * Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit * 2 + Text { + id: sampleRegularDark + text: qsTr("regular text") + color: subsurfaceTheme.darkTextColor + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + } + } + Rectangle { + color: subsurfaceTheme.darkPrimaryColor + border.color: "black" + width: sampleHighlightDark.width + 2 * Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit * 2 + Text { + id: sampleHighlightDark + text: qsTr("Highlight") + color: subsurfaceTheme.darkPrimaryTextColor + anchors { + horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter + } + } + } + } + } + Rectangle { + color: subsurfaceTheme.darkerPrimaryColor + height: 1 + opacity: 0.5 + Layout.columnSpan: 3 + Layout.fillWidth: true + } + GridLayout { + id: gpsPrefs + columns: 2 + width: parent.width + + Kirigami.Heading { + text: qsTr("Subsurface GPS data webservice") + color: subsurfaceTheme.textColor + level: 4 + Layout.topMargin: Kirigami.Units.largeSpacing + Layout.bottomMargin: Kirigami.Units.largeSpacing / 2 + Layout.columnSpan: 2 + } + + Kirigami.Label { + text: qsTr("Distance threshold (meters)") + Layout.alignment: Qt.AlignRight + } + + TextField { + id: distanceThreshold + text: manager.distanceThreshold + Layout.fillWidth: true + } + + Kirigami.Label { + text: qsTr("Time threshold (minutes)") + Layout.alignment: Qt.AlignRight + } + + TextField { + id: timeThreshold + text: manager.timeThreshold + Layout.fillWidth: true + } + + Item { + Layout.fillHeight: true + } + } + Rectangle { + color: subsurfaceTheme.darkerPrimaryColor + height: 1 + opacity: 0.5 + Layout.columnSpan: 3 + Layout.fillWidth: true + } + GridLayout { + id: locationService + columns: 2 + width: parent.width + CheckBox { + id: locationCheckbox + visible: manager.locationServiceAvailable + checked: manager.locationServiceEnabled + onClicked: { + manager.locationServiceEnabled = checked + } + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + x: locationCheckbox.leftPadding + y: parent.height / 2 - height / 2 + radius: 4 + border.color: locationCheckbox.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + color: subsurfaceTheme.backgroundColor + + Rectangle { + width: 12 + height: 12 + x: 4 + y: 4 + radius: 3 + color: locationCheckbox.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + visible: locationCheckbox.checked + } + } + } + Kirigami.Label { + text: qsTr("Run location service") + } + } + GridLayout { + id: libdclogprefs + columns: 2 + width: parent.width + Kirigami.Heading { + text: qsTr("Dive computer") + color: subsurfaceTheme.textColor + level: 4 + Layout.topMargin: Kirigami.Units.largeSpacing + Layout.bottomMargin: Kirigami.Units.largeSpacing / 2 + Layout.columnSpan: 2 + } + + Switch { + id: libdclogButton + checked: manager.libdcLog + onClicked: { + manager.libdcLog = checked + } + } + Kirigami.Label { + text: qsTr("Save detailed log of interaction with the dive computer") + } + } + GridLayout { + id: developer + columns: 2 + width: parent.width - Kirigami.Units.gridUnit + Kirigami.Heading { + text: qsTr("Developer") + color: subsurfaceTheme.textColor + level: 4 + Layout.topMargin: Kirigami.Units.largeSpacing + Layout.bottomMargin: Kirigami.Units.largeSpacing / 2 + Layout.columnSpan: 2 + } + + CheckBox { + id: developerButton + checked: manager.developer + onClicked: { + manager.developer = checked + } + indicator: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + x: developerButton.leftPadding + y: parent.height / 2 - height / 2 + radius: 4 + border.color: developerButton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + color: subsurfaceTheme.backgroundColor + + Rectangle { + width: 12 + height: 12 + x: 4 + y: 4 + radius: 3 + color: developerButton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor + visible: developerButton.checked + } + } + } + Kirigami.Label { + text: qsTr("Display Developer menu") + } + } + Item { + height: Kirigami.Units.gridUnit * 6 + } + } +} |