mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	For some reason, after the update of the main.qml to version 2.2, all Kirigami Pages and scrollablePages show up plain white. So now, set a proper background for these pages. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
		
			
				
	
	
		
			371 lines
		
	
	
	
		
			9.4 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
			
		
		
	
	
			371 lines
		
	
	
	
		
			9.4 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0
 | 
						|
import QtQuick 2.6
 | 
						|
import QtQuick.Controls 2.2 as Controls
 | 
						|
import QtQuick.Window 2.2
 | 
						|
import QtQuick.Dialogs 1.2
 | 
						|
import QtQuick.Layouts 1.2
 | 
						|
import org.kde.kirigami 2.2 as Kirigami
 | 
						|
import org.subsurfacedivelog.mobile 1.0
 | 
						|
 | 
						|
Kirigami.ScrollablePage {
 | 
						|
	objectName: "Settings"
 | 
						|
	id: settingsPage
 | 
						|
	title: qsTr("Settings")
 | 
						|
	background: Rectangle { color: subsurfaceTheme.backgroundColor }
 | 
						|
 | 
						|
	property real gridWidth: settingsPage.width - Kirigami.Units.gridUnit
 | 
						|
	property var describe: [qsTr("Undefined"),
 | 
						|
		qsTr("Incorrect username/password combination"),
 | 
						|
		qsTr("Credentials need to be verified"),
 | 
						|
		qsTr("Credentials verified"),
 | 
						|
		qsTr("No cloud mode")]
 | 
						|
 | 
						|
	ColumnLayout {
 | 
						|
		width: gridWidth
 | 
						|
		GridLayout {
 | 
						|
			id: cloudSetting
 | 
						|
			columns: 3
 | 
						|
			Layout.bottomMargin: Kirigami.Units.gridUnit
 | 
						|
 | 
						|
			Kirigami.Heading {
 | 
						|
				text: qsTr("Cloud status")
 | 
						|
				color: subsurfaceTheme.textColor
 | 
						|
				level: 4
 | 
						|
				Layout.topMargin: Kirigami.Units.largeSpacing
 | 
						|
				Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
 | 
						|
				Layout.columnSpan: 3
 | 
						|
			}
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Email")
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				Layout.preferredWidth: gridWidth * 0.15
 | 
						|
				Layout.preferredHeight: Kirigami.Units.gridUnit * 2
 | 
						|
			}
 | 
						|
			Controls.Label {
 | 
						|
				text: manager.credentialStatus === QMLManager.CS_NOCLOUD ? qsTr("Not applicable") : manager.cloudUserName
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				Layout.preferredWidth: gridWidth * 0.60
 | 
						|
				Layout.preferredHeight: Kirigami.Units.gridUnit * 2
 | 
						|
			}
 | 
						|
			SsrfButton {
 | 
						|
				id: changeCloudSettings
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				text: qsTr("Change")
 | 
						|
				onClicked: {
 | 
						|
					manager.cancelCredentialsPinSetup()
 | 
						|
					rootItem.returnTopPage()
 | 
						|
				}
 | 
						|
			}
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Status")
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				Layout.preferredWidth: gridWidth * 0.15
 | 
						|
				Layout.preferredHeight: Kirigami.Units.gridUnit * 2
 | 
						|
			}
 | 
						|
			Controls.Label {
 | 
						|
				text: describe[manager.credentialStatus]
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				Layout.preferredWidth: gridWidth * 0.60
 | 
						|
				Layout.preferredHeight: Kirigami.Units.gridUnit * 2
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		Rectangle {
 | 
						|
			color: subsurfaceTheme.darkerPrimaryColor
 | 
						|
			height: 1
 | 
						|
			opacity: 0.5
 | 
						|
			Layout.fillWidth: true
 | 
						|
		}
 | 
						|
		GridLayout {
 | 
						|
			id: themeSettings
 | 
						|
			columns: 3
 | 
						|
			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: 3
 | 
						|
			}
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Blue")
 | 
						|
				color: subsurfaceTheme.textColor
 | 
						|
				rightPadding: Kirigami.Units.gridUnit
 | 
						|
				Layout.preferredWidth: gridWidth * 0.15
 | 
						|
			}
 | 
						|
			Row {
 | 
						|
				Layout.preferredWidth: gridWidth * 0.6
 | 
						|
				Rectangle {
 | 
						|
					id: blueRect
 | 
						|
					color: subsurfaceTheme.blueBackgroundColor
 | 
						|
					border.color: "black"
 | 
						|
					width: sampleRegularBlue.width + 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 + Kirigami.Units.gridUnit
 | 
						|
					height: Kirigami.Units.gridUnit * 2
 | 
						|
					Text {
 | 
						|
						id: sampleHighlightBlue
 | 
						|
						text: qsTr("Highlight")
 | 
						|
						color: subsurfaceTheme.bluePrimaryTextColor
 | 
						|
						anchors {
 | 
						|
							horizontalCenter: parent.horizontalCenter
 | 
						|
							verticalCenter: parent.verticalCenter
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			SsrfSwitch {
 | 
						|
				id: blueButton
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				checked: subsurfaceTheme.currentTheme === "Blue"
 | 
						|
				enabled: subsurfaceTheme.currentTheme !== "Blue"
 | 
						|
				onClicked: {
 | 
						|
					blueTheme()
 | 
						|
					manager.theme = subsurfaceTheme.currentTheme
 | 
						|
					manager.savePreferences()
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.Label {
 | 
						|
				id: pinkLabel
 | 
						|
				text: qsTr("Pink")
 | 
						|
				rightPadding: Kirigami.Units.gridUnit
 | 
						|
				Layout.preferredWidth: gridWidth * 0.15
 | 
						|
			}
 | 
						|
			Row {
 | 
						|
				Layout.preferredWidth: gridWidth * 0.6
 | 
						|
				Rectangle {
 | 
						|
					id: pinkRect
 | 
						|
					color: subsurfaceTheme.pinkBackgroundColor
 | 
						|
					border.color: "black"
 | 
						|
					width: sampleRegularPink.width + 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 + Kirigami.Units.gridUnit
 | 
						|
					height: Kirigami.Units.gridUnit * 2
 | 
						|
					Text {
 | 
						|
						id: sampleHighlightPink
 | 
						|
						text: qsTr("Highlight")
 | 
						|
						color: subsurfaceTheme.pinkPrimaryTextColor
 | 
						|
						anchors {
 | 
						|
							horizontalCenter: parent.horizontalCenter
 | 
						|
							verticalCenter: parent.verticalCenter
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			SsrfSwitch {
 | 
						|
				id: pinkButton
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				checked: subsurfaceTheme.currentTheme === "Pink"
 | 
						|
				enabled: subsurfaceTheme.currentTheme !== "Pink"
 | 
						|
				onClicked: {
 | 
						|
					pinkTheme()
 | 
						|
					manager.theme = subsurfaceTheme.currentTheme
 | 
						|
					manager.savePreferences()
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Dark")
 | 
						|
				color: subsurfaceTheme.textColor
 | 
						|
				rightPadding: Kirigami.Units.gridUnit
 | 
						|
				Layout.preferredWidth: gridWidth * 0.15
 | 
						|
			}
 | 
						|
			Row {
 | 
						|
				Layout.preferredWidth: gridWidth * 0.6
 | 
						|
				Rectangle {
 | 
						|
					id: blackRect
 | 
						|
					color: subsurfaceTheme.darkBackgroundColor
 | 
						|
					border.color: "black"
 | 
						|
					width: sampleRegularDark.width + 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 + Kirigami.Units.gridUnit
 | 
						|
					height: Kirigami.Units.gridUnit * 2
 | 
						|
					Text {
 | 
						|
						id: sampleHighlightDark
 | 
						|
						text: qsTr("Highlight")
 | 
						|
						color: subsurfaceTheme.darkPrimaryTextColor
 | 
						|
						anchors {
 | 
						|
							horizontalCenter: parent.horizontalCenter
 | 
						|
							verticalCenter: parent.verticalCenter
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			SsrfSwitch {
 | 
						|
				id: darkButton
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				checked: subsurfaceTheme.currentTheme === "Dark"
 | 
						|
				enabled: subsurfaceTheme.currentTheme !== "Dark"
 | 
						|
				onClicked: {
 | 
						|
					darkTheme()
 | 
						|
					manager.theme = subsurfaceTheme.currentTheme
 | 
						|
					manager.savePreferences()
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		Rectangle {
 | 
						|
			color: subsurfaceTheme.darkerPrimaryColor
 | 
						|
			height: 1
 | 
						|
			opacity: 0.5
 | 
						|
			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
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Distance threshold (meters)")
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				Layout.preferredWidth: gridWidth * 0.75
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.TextField {
 | 
						|
				id: distanceThreshold
 | 
						|
				text: manager.distanceThreshold
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				onEditingFinished: {
 | 
						|
					manager.distanceThreshold = distanceThreshold.text
 | 
						|
					manager.savePreferences()
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Time threshold (minutes)")
 | 
						|
				Layout.alignment: Qt.AlignRight
 | 
						|
				Layout.preferredWidth: gridWidth * 0.75
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.TextField {
 | 
						|
				id: timeThreshold
 | 
						|
				text: manager.timeThreshold
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				onEditingFinished: {
 | 
						|
					manager.timeThreshold = timeThreshold.text
 | 
						|
					manager.savePreferences()
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
		}
 | 
						|
		Rectangle {
 | 
						|
			color: subsurfaceTheme.darkerPrimaryColor
 | 
						|
			height: 1
 | 
						|
			opacity: 0.5
 | 
						|
			Layout.fillWidth: true
 | 
						|
		}
 | 
						|
		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
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Save detailed log")
 | 
						|
				Layout.preferredWidth: gridWidth * 0.75
 | 
						|
			}
 | 
						|
			SsrfSwitch {
 | 
						|
				id: libdclogButton
 | 
						|
				checked: manager.libdcLog
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				onClicked: {
 | 
						|
					manager.libdcLog = checked
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		Rectangle {
 | 
						|
			color: subsurfaceTheme.darkerPrimaryColor
 | 
						|
			height: 1
 | 
						|
			opacity: 0.5
 | 
						|
			Layout.fillWidth: true
 | 
						|
		}
 | 
						|
		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
 | 
						|
			}
 | 
						|
 | 
						|
			Controls.Label {
 | 
						|
				text: qsTr("Display Developer menu")
 | 
						|
				Layout.preferredWidth: gridWidth * 0.75
 | 
						|
			}
 | 
						|
			SsrfSwitch {
 | 
						|
				id: developerButton
 | 
						|
				checked: manager.developer
 | 
						|
				Layout.preferredWidth: gridWidth * 0.25
 | 
						|
				onClicked: {
 | 
						|
					manager.developer = checked
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		Item {
 | 
						|
			height: Kirigami.Units.gridUnit * 6
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |