summaryrefslogtreecommitdiffstats
path: root/mobile-widgets/qml/Settings.qml
diff options
context:
space:
mode:
authorGravatar Joakim Bygdell <j.bygdell@gmail.com>2017-07-20 19:39:55 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-23 03:20:58 +0900
commit6655b37add8c1dbee23d734fa6eb8f4c0bec9aae (patch)
tree2d94e6de766b5a3b24f45114e342673b574d0c88 /mobile-widgets/qml/Settings.qml
parente80132cdef038fdff253f59979fbb8789e325315 (diff)
downloadsubsurface-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.qml415
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
+ }
+ }
+}