aboutsummaryrefslogblamecommitdiffstats
path: root/qt-mobile/main.qml
blob: 5c8c04b2ca8766aed780ccad4e276df8fdbbffdb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                           
                                  
                         
                          
                          
                         
                                       
                                
                   
                                        
                                                
                     
 






                         






















                                                                   



                                                  


                                                             




                                                      





                                                         
         
                             
                                    






                                                                                       
 

                                                    
                                                           
                                                   
                                                                                                    
                                                              
                                                         
                                                                              
                                                                                   
                                                                          
                                                                                 
                                                                            
                                                                                  




                                                                                                     

                                                                                       
                                                                               
                                                                                    
                                                 

                                                                              
                                                                       
                                                                                   
                                                                                                  
                                                                                       
                                                                                                         

                                                                               
                                                                                                    




                                                                                                              
                                                                    
                                                                                 
                                                         
 
                                         
 
                                 
 


                                                               
 

                                                                         
                                                                            
                                         
 





                                                                   
                                                                      
                                                        
                                                                           


                                                                  
                         
                 
         
 
                           
         




                               


                                 



                                       



                              
                                
                                                              
         
 
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
						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
	}

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