2017-04-27 18:30:36 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2015-07-10 07:48:28 +00:00
|
|
|
import QtQuick 2.3
|
2017-03-31 14:15:14 +00:00
|
|
|
import QtQuick.Controls 2.0
|
2015-07-10 07:48:28 +00:00
|
|
|
import QtQuick.Window 2.2
|
|
|
|
import QtQuick.Dialogs 1.2
|
|
|
|
import QtQuick.Layouts 1.1
|
2017-03-31 14:15:14 +00:00
|
|
|
import org.kde.kirigami 2.0 as Kirigami
|
2015-07-10 07:48:28 +00:00
|
|
|
import org.subsurfacedivelog.mobile 1.0
|
|
|
|
|
2017-07-10 01:47:18 +00:00
|
|
|
Kirigami.ScrollablePage {
|
|
|
|
objectName: "Preferences"
|
2016-05-03 19:24:00 +00:00
|
|
|
title: qsTr("Preferences")
|
2017-07-10 01:47:18 +00:00
|
|
|
anchors.margins: Kirigami.Units.gridUnit / 2
|
|
|
|
|
2016-04-19 11:51:19 +00:00
|
|
|
actions {
|
2017-03-31 14:15:14 +00:00
|
|
|
main: Kirigami.Action {
|
2016-05-03 19:24:00 +00:00
|
|
|
text: qsTr("Save")
|
2016-04-19 11:51:19 +00:00
|
|
|
iconName: "document-save"
|
|
|
|
onTriggered: {
|
|
|
|
manager.distanceThreshold = distanceThreshold.text
|
|
|
|
manager.timeThreshold = timeThreshold.text
|
2017-06-24 02:35:48 +00:00
|
|
|
manager.theme = subsurfaceTheme.currentTheme
|
2016-04-19 11:51:19 +00:00
|
|
|
manager.savePreferences()
|
|
|
|
stackView.pop()
|
|
|
|
}
|
2016-02-12 12:51:03 +00:00
|
|
|
}
|
2016-02-14 05:50:31 +00:00
|
|
|
}
|
2017-07-10 01:47:18 +00:00
|
|
|
ColumnLayout {
|
|
|
|
width: parent.width - Kirigami.Units.gridUnit
|
2017-07-10 03:53:16 +00:00
|
|
|
GridLayout {
|
|
|
|
id: themePrefs
|
|
|
|
columns: 2
|
2015-07-10 07:48:28 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
Kirigami.Heading {
|
|
|
|
text: qsTr("Theme")
|
|
|
|
color: subsurfaceTheme.textColor
|
|
|
|
level: 4
|
|
|
|
Layout.topMargin: Kirigami.Units.largeSpacing
|
|
|
|
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
|
|
|
Layout.columnSpan: 2
|
2017-06-23 20:06:17 +00:00
|
|
|
}
|
2017-07-08 17:17:10 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
RadioButton {
|
|
|
|
id: bluebutton
|
|
|
|
checked: subsurfaceTheme.currentTheme === "Blue"
|
|
|
|
onClicked: {
|
|
|
|
blueTheme()
|
2017-07-08 17:17:10 +00:00
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
2017-06-24 01:08:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
|
|
|
}
|
2017-06-24 01:08:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
2017-07-08 17:17:10 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
Rectangle {
|
|
|
|
width: 12
|
|
|
|
height: 12
|
|
|
|
x: 4
|
|
|
|
y: 4
|
|
|
|
radius: 3
|
|
|
|
color: pinkbutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor
|
|
|
|
visible: pinkbutton.checked
|
|
|
|
}
|
2017-07-08 17:17:10 +00:00
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
|
|
|
}
|
2017-06-24 01:08:47 +00:00
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
|
|
|
}
|
2017-06-24 01:08:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
2017-07-08 17:17:10 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
Rectangle {
|
|
|
|
width: 12
|
|
|
|
height: 12
|
|
|
|
x: 4
|
|
|
|
y: 4
|
|
|
|
radius: 3
|
|
|
|
color: darkbutton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor
|
|
|
|
visible: darkbutton.checked
|
|
|
|
}
|
2017-07-08 17:17:10 +00:00
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
|
|
|
}
|
2017-06-24 01:08:47 +00:00
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
|
|
|
}
|
2017-06-24 01:08:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
GridLayout {
|
|
|
|
id: gpsPrefs
|
|
|
|
columns: 2
|
|
|
|
width: parent.width
|
2017-06-23 20:06:17 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
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
|
|
|
|
}
|
2015-11-14 01:14:22 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
Kirigami.Label {
|
|
|
|
text: qsTr("Distance threshold (meters)")
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
}
|
2015-11-14 17:10:06 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
TextField {
|
|
|
|
id: distanceThreshold
|
|
|
|
text: manager.distanceThreshold
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
2015-11-14 17:10:06 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
Kirigami.Label {
|
|
|
|
text: qsTr("Time threshold (minutes)")
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
|
|
}
|
2015-11-14 17:10:06 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
TextField {
|
|
|
|
id: timeThreshold
|
|
|
|
text: manager.timeThreshold
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
2015-11-14 17:10:06 +00:00
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
Item {
|
|
|
|
Layout.fillHeight: true
|
|
|
|
}
|
2017-07-10 01:08:36 +00:00
|
|
|
}
|
2017-07-19 18:57:12 +00:00
|
|
|
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")
|
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
GridLayout {
|
|
|
|
id: libdclogprefs
|
|
|
|
columns: 2
|
|
|
|
width: parent.width
|
|
|
|
Kirigami.Heading {
|
|
|
|
text: qsTr("Debug log for download from divecomputer")
|
|
|
|
color: subsurfaceTheme.textColor
|
|
|
|
level: 4
|
|
|
|
Layout.topMargin: Kirigami.Units.largeSpacing
|
|
|
|
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
|
|
|
|
Layout.columnSpan: 2
|
2017-07-10 01:08:36 +00:00
|
|
|
}
|
|
|
|
|
2017-07-10 03:53:16 +00:00
|
|
|
CheckBox {
|
|
|
|
id: libdclogButton
|
|
|
|
checked: manager.libdcLog
|
|
|
|
onClicked: {
|
|
|
|
manager.libdcLog = checked
|
|
|
|
}
|
|
|
|
indicator: Rectangle {
|
|
|
|
implicitWidth: 20
|
|
|
|
implicitHeight: 20
|
|
|
|
x: libdclogButton.leftPadding
|
|
|
|
y: parent.height / 2 - height / 2
|
|
|
|
radius: 4
|
|
|
|
border.color: libdclogButton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor
|
|
|
|
color: subsurfaceTheme.backgroundColor
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
width: 12
|
|
|
|
height: 12
|
|
|
|
x: 4
|
|
|
|
y: 4
|
|
|
|
radius: 3
|
|
|
|
color: libdclogButton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor
|
|
|
|
visible: libdclogButton.checked
|
|
|
|
}
|
2017-07-10 01:08:36 +00:00
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
Kirigami.Label {
|
|
|
|
text: qsTr("Save detailed log of interaction with the dive computer")
|
|
|
|
}
|
2017-07-10 01:08:36 +00:00
|
|
|
}
|
2017-07-19 14:35:46 +00:00
|
|
|
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")
|
|
|
|
}
|
|
|
|
}
|
2017-07-10 03:53:16 +00:00
|
|
|
Item {
|
|
|
|
height: Kirigami.Units.gridUnit * 6
|
2017-07-10 01:08:36 +00:00
|
|
|
}
|
2017-07-10 01:47:18 +00:00
|
|
|
}
|
2015-07-10 07:48:28 +00:00
|
|
|
}
|