// 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.Page {

	title: qsTr("Preferences")
	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()
			}
		}
	}

	GridLayout {
		id: themePrefs
		columns: 2
		width: parent.width - Kirigami.Units.gridUnit
		anchors {
			top: parent.top
			left: parent.left
			right: parent.right
			margins: Kirigami.Units.gridUnit / 2
		}

		Kirigami.Heading {
			text: qsTr("Preferences")
			color: subsurfaceTheme.textColor
			Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
			Layout.columnSpan: 2
		}

		Kirigami.Heading {
			text: qsTr("Theme")
			color: subsurfaceTheme.textColor
			level: 3
			Layout.topMargin: Kirigami.Units.largeSpacing
			Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
			Layout.columnSpan: 2
		}

		RadioButton {
			checked: subsurfaceTheme.currentTheme === "Blue"
			onClicked: {
				blueTheme()
			}
		}
		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 {
			checked: subsurfaceTheme.currentTheme === "Pink"
			onClicked: {
				pinkTheme()
			}
		}
		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 {
			checked: subsurfaceTheme.currentTheme === "Dark"
			onClicked: {
				darkTheme()
			}
		}
		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
					}
				}
			}
		}
	}
	GridLayout {
		columns: 2
		width: parent.width - Kirigami.Units.gridUnit
		anchors {
			top: themePrefs.bottom
			margins: Kirigami.Units.gridUnit / 2
		}

		Kirigami.Heading {
			text: qsTr("Subsurface GPS data webservice")
			color: subsurfaceTheme.textColor
			level: 3
			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
		}
	}
}