summaryrefslogtreecommitdiffstats
path: root/qt-mobile
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-07 21:43:22 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-07 21:43:22 -0800
commit1eda61e1158de19a47acdfc5525f5f0df002052f (patch)
treefd981938b70fe20c20b3ea2ffc90abd9db74de9a /qt-mobile
parentce3a78efcac2c9b6bd215bc191560a64c54fd628 (diff)
parentb6ae6979e530fa32dbdb472a2e9698cb719945a8 (diff)
downloadsubsurface-1eda61e1158de19a47acdfc5525f5f0df002052f.tar.gz
Merge branch 'gpsList'
Diffstat (limited to 'qt-mobile')
-rw-r--r--qt-mobile/qml/GpsList.qml113
-rw-r--r--qt-mobile/qml/main.qml19
-rw-r--r--qt-mobile/qml/mobile-resources.qrc1
-rw-r--r--qt-mobile/qmlmanager.cpp12
-rw-r--r--qt-mobile/qmlmanager.h2
5 files changed, 147 insertions, 0 deletions
diff --git a/qt-mobile/qml/GpsList.qml b/qt-mobile/qml/GpsList.qml
new file mode 100644
index 000000000..f0afc56db
--- /dev/null
+++ b/qt-mobile/qml/GpsList.qml
@@ -0,0 +1,113 @@
+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 org.kde.plasma.mobilecomponents 0.2 as MobileComponents
+
+MobileComponents.Page {
+ id: gpsListWindow
+ width: parent.width - MobileComponents.Units.gridUnit
+ anchors.margins: MobileComponents.Units.gridUnit / 2
+ objectName: "gpsList"
+
+ contextualActions: [
+ Action {
+ id: closeLog
+ text: "Close GPS list"
+ iconName: "view-readermode"
+ onTriggered: {
+ stackView.pop()
+ contextDrawer.close()
+ }
+ }
+ ]
+
+ Component {
+ id: gpsDelegate
+ MobileComponents.ListItem {
+ id: gpsFix
+ enabled: true
+ width: parent.width
+ property int horizontalPadding: MobileComponents.Units.gridUnit / 2 - MobileComponents.Units.smallSpacing + 1
+ Item {
+ width: parent.width - MobileComponents.Units.gridUnit
+ height: childrenRect.height - MobileComponents.Units.smallSpacing
+ GridLayout {
+ columns: 4
+ id: timeAndName
+ anchors {
+ left: parent.left
+ leftMargin: horizontalPadding
+ right: parent.right
+ rightMargin: horizontalPadding
+ }
+ MobileComponents.Label {
+ text: 'Date: '
+ opacity: 0.6
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: when
+ width: Math.max(parent.width / 5, paintedWidth) // helps vertical alignment throughout listview
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: 'Name: '
+ opacity: 0.6
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: name
+ width: Math.max(parent.width / 5, paintedWidth) // helps vertical alignment throughout listview
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: 'Latitude: '
+ opacity: 0.6
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: latitude
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: 'Longitude: '
+ opacity: 0.6
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ MobileComponents.Label {
+ text: longitude
+ font.pointSize: subsurfaceTheme.smallPointSize
+ }
+ }
+
+ }
+ }
+ }
+
+ ScrollView {
+ anchors.fill: parent
+ ListView {
+ id: gpsListView
+ anchors.fill: parent
+ model: gpsModel
+ currentIndex: -1
+ delegate: gpsDelegate
+ boundsBehavior: Flickable.StopAtBounds
+ maximumFlickVelocity: parent.height * 5
+ cacheBuffer: parent.height *5
+ focus: true
+ clip: true
+ header: MobileComponents.Heading {
+ x: MobileComponents.Units.gridUnit / 2
+ height: paintedHeight + MobileComponents.Units.gridUnit / 2
+ verticalAlignment: Text.AlignBottom
+ text: "List of stored GPS fixes"
+ }
+ }
+ }
+}
diff --git a/qt-mobile/qml/main.qml b/qt-mobile/qml/main.qml
index c0d079106..db238bb22 100644
--- a/qt-mobile/qml/main.qml
+++ b/qt-mobile/qml/main.qml
@@ -98,6 +98,21 @@ MobileComponents.ApplicationWindow {
}
Action {
+ text: "Download GPS data"
+ onTriggered: {
+ manager.downloadGpsData();
+ }
+ }
+
+ Action {
+ text: "Show GPS fixes"
+ onTriggered: {
+ manager.populateGpsData();
+ stackView.push(gpsWindow)
+ }
+ }
+
+ Action {
text: "Clear GPS cache"
onTriggered: {
manager.clearGpsData();
@@ -217,6 +232,10 @@ MobileComponents.ApplicationWindow {
visible: false
}
+ GpsList {
+ id: gpsWindow
+ }
+
ThemeTest {
id: themetest
visible: false
diff --git a/qt-mobile/qml/mobile-resources.qrc b/qt-mobile/qml/mobile-resources.qrc
index cde0d42cf..bf38cf074 100644
--- a/qt-mobile/qml/mobile-resources.qrc
+++ b/qt-mobile/qml/mobile-resources.qrc
@@ -9,6 +9,7 @@
<file>DiveDetailsEdit.qml</file>
<file>DiveDetailsView.qml</file>
<file>DownloadFromDiveComputer.qml</file>
+ <file>GpsList.qml</file>
<file>Log.qml</file>
<file>TopBar.qml</file>
<file>ThemeTest.qml</file>
diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp
index 00f8b5d48..4dd5ca4fb 100644
--- a/qt-mobile/qmlmanager.cpp
+++ b/qt-mobile/qmlmanager.cpp
@@ -501,9 +501,21 @@ void QMLManager::sendGpsData()
locationProvider->uploadToServer();
}
+void QMLManager::downloadGpsData()
+{
+ locationProvider->downloadFromServer();
+ locationProvider->updateModel();
+}
+
+void QMLManager::populateGpsData()
+{
+ locationProvider->updateModel();
+}
+
void QMLManager::clearGpsData()
{
locationProvider->clearGpsData();
+ locationProvider->updateModel();
}
QString QMLManager::logText() const
diff --git a/qt-mobile/qmlmanager.h b/qt-mobile/qmlmanager.h
index 24ca265e6..1953f0d76 100644
--- a/qt-mobile/qmlmanager.h
+++ b/qt-mobile/qmlmanager.h
@@ -77,6 +77,8 @@ public slots:
QString addDive();
void applyGpsData();
void sendGpsData();
+ void downloadGpsData();
+ void populateGpsData();
void clearGpsData();
void finishSetup();
void showMap(QString location);