mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 21:20:19 +00:00
32219f1276
The ApplicationWindow component has an internal PageRow for the management of the application's pages, use that instead of an own StackView. Use shared components for common things in the app ListItem for the dive list Page for application pages, for correct background color and moving of the action button Signed-off-by: Marco Martin <notmart@gmail.com> Signed-off-by: Sebastian Kügler <sebas@kde.org>
282 lines
4.6 KiB
QML
282 lines
4.6 KiB
QML
import QtQuick 2.4
|
|
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 org.kde.plasma.mobilecomponents 0.2 as MobileComponents
|
|
|
|
MobileComponents.ApplicationWindow {
|
|
title: qsTr("Subsurface mobile")
|
|
property bool fullscreen: true
|
|
property alias messageText: message.text
|
|
|
|
FontMetrics {
|
|
id: fontMetrics
|
|
}
|
|
|
|
visible: true
|
|
|
|
globalDrawer: MobileComponents.GlobalDrawer{
|
|
title: "Subsurface"
|
|
titleIcon: "qrc:/qml/subsurface-mobile-icon.png"
|
|
|
|
bannerImageSource: "dive.jpg"
|
|
actions: [
|
|
Action {
|
|
text: "Preferences"
|
|
onTriggered: {
|
|
stackView.push(prefsWindow)
|
|
}
|
|
},
|
|
|
|
Action {
|
|
text: "Load Dives"
|
|
onTriggered: {
|
|
manager.loadDives();
|
|
}
|
|
},
|
|
|
|
Action {
|
|
text: "Download Dives"
|
|
onTriggered: {
|
|
stackView.push(downloadDivesWindow)
|
|
}
|
|
},
|
|
|
|
Action {
|
|
text: "Add Dive"
|
|
onTriggered: {
|
|
manager.addDive();
|
|
stackView.push(detailsWindow)
|
|
}
|
|
},
|
|
|
|
Action {
|
|
text: "Save Changes"
|
|
onTriggered: {
|
|
manager.saveChanges();
|
|
}
|
|
},
|
|
|
|
MobileComponents.ActionGroup {
|
|
text: "GPS"
|
|
Action {
|
|
text: "Run location service"
|
|
checkable: true
|
|
checked: manager.locationServiceEnabled
|
|
onToggled: {
|
|
manager.locationServiceEnabled = checked;
|
|
}
|
|
}
|
|
Action {
|
|
text: "Apply GPS data to dives"
|
|
onTriggered: {
|
|
manager.applyGpsData();
|
|
}
|
|
}
|
|
|
|
Action {
|
|
text: "Send GPS data to server"
|
|
onTriggered: {
|
|
manager.sendGpsData();
|
|
}
|
|
}
|
|
|
|
Action {
|
|
text: "Clear stored GPS data"
|
|
onTriggered: {
|
|
manager.clearGpsData();
|
|
}
|
|
}
|
|
},
|
|
|
|
Action {
|
|
text: "View Log"
|
|
onTriggered: {
|
|
stackView.push(logWindow)
|
|
}
|
|
},
|
|
|
|
Action {
|
|
text: "Theme Information"
|
|
onTriggered: {
|
|
stackView.push(themetest)
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
QtObject {
|
|
id: subsurfaceTheme
|
|
property int titlePointSize: Math.round(fontMetrics.font.pointSize * 1.5)
|
|
property int smallPointSize: Math.round(fontMetrics.font.pointSize * 0.7)
|
|
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: "Run location service"
|
|
checkable: true
|
|
checked: manager.locationServiceEnabled
|
|
onToggled: {
|
|
manager.locationServiceEnabled = checked;
|
|
}
|
|
}
|
|
|
|
MenuItem {
|
|
text: "Apply GPS data to dives"
|
|
onTriggered: {
|
|
manager.applyGpsData();
|
|
}
|
|
}
|
|
|
|
MenuItem {
|
|
text: "Send GPS data to server"
|
|
onTriggered: {
|
|
manager.sendGpsData();
|
|
}
|
|
}
|
|
|
|
MenuItem {
|
|
text: "Clear stored GPS data"
|
|
onTriggered: {
|
|
manager.clearGpsData();
|
|
}
|
|
}
|
|
|
|
MenuItem {
|
|
text: "View Log"
|
|
onTriggered: {
|
|
stackView.push(logWindow)
|
|
}
|
|
}
|
|
|
|
MenuItem {
|
|
text: "Theme Information"
|
|
onTriggered: {
|
|
stackView.push(themetest)
|
|
}
|
|
}
|
|
}
|
|
|
|
toolBar: TopBar {
|
|
width: parent.width
|
|
height: Layout.minimumHeight
|
|
}
|
|
|
|
property Item stackView: pageStack
|
|
initialPage: Item {
|
|
width: parent.width
|
|
height: parent.height
|
|
|
|
ColumnLayout {
|
|
id: awLayout
|
|
anchors.fill: parent
|
|
spacing: MobileComponents.Units.gridUnit / 2
|
|
|
|
Rectangle {
|
|
id: detailsPage
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
|
|
DiveList {
|
|
anchors.fill: detailsPage
|
|
id: diveDetails
|
|
color: MobileComponents.Theme.backgroundColor
|
|
}
|
|
}
|
|
|
|
|
|
Rectangle {
|
|
id: messageArea
|
|
height: childrenRect.height
|
|
Layout.fillWidth: true
|
|
color: MobileComponents.Theme.backgroundColor
|
|
|
|
Text {
|
|
id: message
|
|
color: MobileComponents.Theme.textColor
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
styleColor: MobileComponents.Theme.textColor
|
|
font.pointSize: MobileComponents.Units.smallPointSize
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
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("MobileComponents.Units.gridUnit is: " + MobileComponents.Units.gridUnit);
|
|
}
|
|
}
|