import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Window 2.2
import org.subsurfacedivelog.mobile 1.0
import "qrc:/qml/theme" as Theme


ApplicationWindow {
	title: qsTr("Subsurface mobile")
	property bool fullscreen: true
	property alias messageText: message.text
	visible: true

	Theme.Units {
		id: units
	}

	Theme.Theme {
		id: theme
	}

	Menu {
		id: prefsMenu
		title: "Menu"

		MenuItem {
			text: "Preferences"
			onTriggered: {
				stackView.push(prefsWindow)
			}
		}

		MenuItem {
			text: "Load Dives"
			onTriggered: {
				manager.loadDives();
			}
		}

		MenuItem {
			text: "Download Dives"
			onTriggered: {
				stackView.push(downloadDivesWindow)
			}
		}

		MenuItem {
			text: "Add Dive"
			onTriggered: {
				manager.addDive();
				stackView.push(detailsWindow)
			}
		}

		MenuItem {
			text: "Save Changes"
			onTriggered: {
				manager.saveChanges();
			}
		}

		MenuItem {
			text: "View Log"
			onTriggered: {
				stackView.push(logWindow)
			}
		}
	}

	StackView {
		id: stackView
		anchors.fill: parent
		focus: true
		Keys.onReleased: if (event.key == Qt.Key_Back && stackView.depth > 1) {
					 stackView.pop()
					 event.accepted = true;
				 }
		initialItem: Item {
			width: parent.width
			height: parent.height

			ColumnLayout {
				id: awLayout
				anchors.fill: parent
				spacing: units.gridUnit / 2
				Rectangle {
					id: topPart
					color: theme.accentColor
					Layout.minimumHeight: units.gridUnit * 2 + units.spacing * 2
					Layout.fillWidth: true
					Layout.margins: 0
					RowLayout {
						anchors.bottom: topPart.bottom
						anchors.bottomMargin: units.spacing
						anchors.left: topPart.left
						anchors.leftMargin: units.spacing
						anchors.right: topPart.right
						anchors.rightMargin: units.spacing
						Text {
							text: qsTr("Subsurface mobile")
							font.pointSize: 18
							color: theme.accentTextColor
						}
						Button {
							id: prefsButton
							text: "\u22ee"
							anchors.right: parent.right
							Layout.preferredWidth: units.gridUnit * 2
							Layout.preferredHeight: units.gridUnit * 2
							style: ButtonStyle {
								background: Rectangle {
									implicitWidth: units.gridUnit * 2
									color: theme.accentColor
								}
								label: Text {
									id: txt
									color: theme.accentTextColor
									font.pointSize: 18
									font.bold: true
									text: control.text
									horizontalAlignment: Text.AlignHCenter
								}
							}
							onClicked: {
								prefsMenu.popup()
							}
						}

					}

				}

				Rectangle {
					id: detailsPage
					Layout.fillHeight: true
					Layout.fillWidth: true

					DiveList {
						anchors.fill: detailsPage
						id: diveDetails
						color: theme.backgroundColor
					}
				}

				Rectangle {
					id: messageArea
					height: childrenRect.height
					Layout.fillWidth: true

					Text {
						id: message
						color: theme.textColor
						text: ""
						styleColor: theme.textColor
						font.pointSize: 10
					}
				}

			}
		}
	}

	QMLManager {
		id: manager
	}

	Preferences {
		id: prefsWindow
		visible: false
	}

	DiveDetails {
		id: detailsWindow
		visible: false
	}

	DownloadFromDiveComputer {
		id: downloadDivesWindow
		visible: false
	}

	Log {
		id: logWindow
		visible: false
	}

	Component.onCompleted: {
		print("units.gridUnit is: " + units.gridUnit);
	}
}