mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
QML UI: show the available GPS fixes
So far the user can't interact with these. We should implement an ability to visualize the GPS fix and to delete it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
06dcc9ab8d
commit
b6ae6979e5
5 changed files with 133 additions and 0 deletions
113
qt-mobile/qml/GpsList.qml
Normal file
113
qt-mobile/qml/GpsList.qml
Normal file
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -104,6 +104,14 @@ MobileComponents.ApplicationWindow {
|
|||
}
|
||||
}
|
||||
|
||||
Action {
|
||||
text: "Show GPS fixes"
|
||||
onTriggered: {
|
||||
manager.populateGpsData();
|
||||
stackView.push(gpsWindow)
|
||||
}
|
||||
}
|
||||
|
||||
Action {
|
||||
text: "Clear GPS cache"
|
||||
onTriggered: {
|
||||
|
@ -224,6 +232,10 @@ MobileComponents.ApplicationWindow {
|
|||
visible: false
|
||||
}
|
||||
|
||||
GpsList {
|
||||
id: gpsWindow
|
||||
}
|
||||
|
||||
ThemeTest {
|
||||
id: themetest
|
||||
visible: false
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -507,9 +507,15 @@ void QMLManager::downloadGpsData()
|
|||
locationProvider->updateModel();
|
||||
}
|
||||
|
||||
void QMLManager::populateGpsData()
|
||||
{
|
||||
locationProvider->updateModel();
|
||||
}
|
||||
|
||||
void QMLManager::clearGpsData()
|
||||
{
|
||||
locationProvider->clearGpsData();
|
||||
locationProvider->updateModel();
|
||||
}
|
||||
|
||||
QString QMLManager::logText() const
|
||||
|
|
|
@ -78,6 +78,7 @@ public slots:
|
|||
void applyGpsData();
|
||||
void sendGpsData();
|
||||
void downloadGpsData();
|
||||
void populateGpsData();
|
||||
void clearGpsData();
|
||||
void finishSetup();
|
||||
void showMap(QString location);
|
||||
|
|
Loading…
Reference in a new issue