mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
68da4de643
showMap() uses a location to open Google Maps in a browser. Make showMap() a generic function to push the mapPage on the view stack. Update the calls to this function from child widgets and pages. Also either call mapPage.centerOnLocation() or mapPage.centerOnDiveSiteUUID() depending if the caller wants the map to center on a dive site or on map coordinates. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
110 lines
2.5 KiB
QML
110 lines
2.5 KiB
QML
// SPDX-License-Identifier: GPL-2.0
|
|
import QtQuick 2.6
|
|
import QtQuick.Controls 2.2 as Controls
|
|
import QtQuick.Window 2.2
|
|
import QtQuick.Dialogs 1.2
|
|
import QtQuick.Layouts 1.2
|
|
import QtQuick.Window 2.2
|
|
import org.subsurfacedivelog.mobile 1.0
|
|
import org.kde.kirigami 2.2 as Kirigami
|
|
|
|
Kirigami.ScrollablePage {
|
|
id: gpsListWindow
|
|
objectName: "gpsList"
|
|
title: qsTr("GPS Fixes")
|
|
background: Rectangle { color: subsurfaceTheme.backgroundColor }
|
|
|
|
Component {
|
|
id: gpsDelegate
|
|
Kirigami.SwipeListItem {
|
|
id: gpsFix
|
|
enabled: true
|
|
width: parent.width
|
|
GridLayout {
|
|
columns: 4
|
|
id: timeAndName
|
|
width: parent.width
|
|
Controls.Label {
|
|
text: qsTr('Date: ')
|
|
color: subsurfaceTheme.textColor
|
|
opacity: 0.6
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: date
|
|
color: subsurfaceTheme.textColor
|
|
Layout.preferredWidth: Math.max(parent.width / 5, paintedWidth)
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: qsTr('Name: ')
|
|
color: subsurfaceTheme.textColor
|
|
opacity: 0.6
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: name
|
|
color: subsurfaceTheme.textColor
|
|
Layout.preferredWidth: Math.max(parent.width / 5, paintedWidth)
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: qsTr('Latitude: ')
|
|
color: subsurfaceTheme.textColor
|
|
opacity: 0.6
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: latitude
|
|
color: subsurfaceTheme.textColor
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: qsTr('Longitude: ')
|
|
color: subsurfaceTheme.textColor
|
|
opacity: 0.6
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
Controls.Label {
|
|
text: longitude
|
|
color: subsurfaceTheme.textColor
|
|
font.pointSize: subsurfaceTheme.smallPointSize
|
|
}
|
|
}
|
|
actions: [
|
|
Kirigami.Action {
|
|
icon {
|
|
name: "trash-empty"
|
|
}
|
|
onTriggered: {
|
|
print("delete this!")
|
|
manager.deleteGpsFix(when)
|
|
}
|
|
},
|
|
Kirigami.Action {
|
|
icon {
|
|
name: "gps"
|
|
}
|
|
onTriggered: {
|
|
showMap()
|
|
mapPage.centerOnLocation(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
|
|
}
|
|
}
|