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:
Dirk Hohndel 2016-01-07 21:40:15 -08:00
parent 06dcc9ab8d
commit b6ae6979e5
5 changed files with 133 additions and 0 deletions

113
qt-mobile/qml/GpsList.qml Normal file
View 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"
}
}
}
}