mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
mappage.qml: add a Kirigami page for the map widget
The Page object has the following functionality: - reloadMap(): reload all map markers. - centerOnDiveSiteUUID(): center the map on a dive site uuid. - centerOnLocation(): the map on a latitude, longitude in decimal. - Select a dive list entry based on a marker selected on the map via diveList.setCurrentDiveListIndex() Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
parent
8b43633c7d
commit
27ad58aa78
1 changed files with 49 additions and 0 deletions
49
mobile-widgets/qml/MapPage.qml
Normal file
49
mobile-widgets/qml/MapPage.qml
Normal file
|
@ -0,0 +1,49 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
import QtQuick 2.6
|
||||
import QtPositioning 5.3
|
||||
import org.subsurfacedivelog.mobile 1.0
|
||||
import org.kde.kirigami 2.2 as Kirigami
|
||||
|
||||
Kirigami.Page {
|
||||
id: mapPage
|
||||
objectName: "MapPage"
|
||||
title: qsTr("Map")
|
||||
leftPadding: 0
|
||||
topPadding: 0
|
||||
rightPadding: 0
|
||||
bottomPadding: 0
|
||||
|
||||
MapWidget {
|
||||
id: mapWidget
|
||||
anchors.fill: parent
|
||||
onSelectedDivesChanged: {
|
||||
if (list.length === 0) {
|
||||
console.warn("main.qml: onSelectedDivesChanged(): received empty list!")
|
||||
return
|
||||
}
|
||||
var id = list[0] // only single dive selection is supported
|
||||
var idx = diveModel.getIdxForId(id)
|
||||
if (idx === -1) {
|
||||
console.warn("main.qml: onSelectedDivesChanged(): cannot find list index for dive id:", id)
|
||||
return
|
||||
}
|
||||
diveList.setCurrentDiveListIndex(idx, true)
|
||||
}
|
||||
}
|
||||
|
||||
function reloadMap() {
|
||||
mapWidget.mapHelper.reloadMapLocations()
|
||||
}
|
||||
|
||||
function centerOnDiveSiteUUID(uuid) {
|
||||
if (!uuid) {
|
||||
console.warn("main.qml: centerOnDiveSiteUUI(): uuid is undefined!")
|
||||
return
|
||||
}
|
||||
mapWidget.mapHelper.centerOnDiveSiteUUID(uuid)
|
||||
}
|
||||
|
||||
function centerOnLocation(lat, lon) {
|
||||
mapWidget.map.centerOnCoordinate(QtPositioning.coordinate(lat, lon))
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue