diff options
Diffstat (limited to 'mobile-widgets/qml/GpsList.qml')
-rw-r--r-- | mobile-widgets/qml/GpsList.qml | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/mobile-widgets/qml/GpsList.qml b/mobile-widgets/qml/GpsList.qml new file mode 100644 index 000000000..6903acd80 --- /dev/null +++ b/mobile-widgets/qml/GpsList.qml @@ -0,0 +1,128 @@ +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.kirigami 1.0 as Kirigami + +Kirigami.ScrollablePage { + id: gpsListWindow + width: parent.width - Kirigami.Units.gridUnit + anchors.margins: Kirigami.Units.gridUnit / 2 + objectName: "gpsList" + title: "GPS Fixes" + +/* this can be done by hitting the back key + contextualActions: [ + Action { + text: "Close GPS list" + iconName: "dialog-cancel" + onTriggered: { + stackView.pop() + contextDrawer.close() + } + } + ] + */ + Component { + id: gpsDelegate + Kirigami.SwipeListItem { + id: gpsFix + enabled: true + width: parent.width + property int horizontalPadding: Kirigami.Units.gridUnit / 2 - Kirigami.Units.smallSpacing + 1 + + Kirigami.BasicListItem { + supportsMouseEvents: true + width: parent.width - Kirigami.Units.gridUnit + height: childrenRect.height - Kirigami.Units.smallSpacing + GridLayout { + columns: 4 + id: timeAndName + anchors { + left: parent.left + leftMargin: horizontalPadding + right: parent.right + rightMargin: horizontalPadding + } + Kirigami.Label { + text: 'Date: ' + opacity: 0.6 + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: date + Layout.preferredWidth: Math.max(parent.width / 5, paintedWidth) + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: 'Name: ' + opacity: 0.6 + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: name + Layout.preferredWidth: Math.max(parent.width / 5, paintedWidth) + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: 'Latitude: ' + opacity: 0.6 + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: latitude + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: 'Longitude: ' + opacity: 0.6 + font.pointSize: subsurfaceTheme.smallPointSize + } + Kirigami.Label { + text: longitude + font.pointSize: subsurfaceTheme.smallPointSize + } + } + } + actions: [ + Kirigami.Action { + iconName: "trash-empty" + onTriggered: { + print("delete this!") + manager.deleteGpsFix(when) + } + }, + Kirigami.Action { + iconName: "gps" + onTriggered: { + showMap(latitude + " " + longitude) + } + } + + ] + } + } + + ListView { + id: gpsListView + anchors.fill: parent + model: gpsModel + currentIndex: -1 + delegate: gpsDelegate + boundsBehavior: Flickable.StopAtBounds + maximumFlickVelocity: parent.height * 5 + cacheBuffer: Math.max(5000, parent.height * 5) + focus: true + clip: true + header: Kirigami.Heading { + x: Kirigami.Units.gridUnit / 2 + height: paintedHeight + Kirigami.Units.gridUnit / 2 + verticalAlignment: Text.AlignBottom + text: "List of stored GPS fixes" + } + } +} |