diff options
Diffstat (limited to 'qt-mobile/qml/main.qml')
-rw-r--r-- | qt-mobile/qml/main.qml | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/qt-mobile/qml/main.qml b/qt-mobile/qml/main.qml new file mode 100644 index 000000000..f75476537 --- /dev/null +++ b/qt-mobile/qml/main.qml @@ -0,0 +1,219 @@ +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 + /* Added for subsurface */ + property color accentColor: "#2d5b9a" + property color accentTextColor: "#ececec" + } + + 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) + } + } + + MenuItem { + text: "Theme Information" + onTriggered: { + stackView.push(themetest) + } + } + } + + 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.smallSpacing * 2 + Layout.fillWidth: true + Layout.margins: 0 + RowLayout { + anchors.bottom: topPart.bottom + anchors.bottomMargin: units.smallSpacing + anchors.left: topPart.left + anchors.leftMargin: units.smallSpacing + anchors.right: topPart.right + anchors.rightMargin: units.smallSpacing + Image { + source: "qrc:/qml/subsurface-mobile-icon.png" + Layout.maximumWidth: units.gridUnit * 2 + Layout.preferredWidth: units.gridUnit * 2 + Layout.preferredHeight: units.gridUnit * 2 + } + Text { + text: qsTr("Subsurface mobile") + font.pointSize: 18 + Layout.fillWidth: false + color: theme.accentTextColor + } + Item { + Layout.fillWidth: true + } + 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 + } + + ThemeTest { + id: themetest + visible: false + } + + Component.onCompleted: { + print("units.gridUnit is: " + units.gridUnit); + } +} |