mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Map: show multiple selected dive sites
If multiple dives are selected, highlight all corresponding sites. For that, replace the MapLocationModel::m_selectedDs pointer by a QVector<>. Fill the vector in MapLocationModel::reload() and add a isSelected() member function. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
446dfed6e7
commit
a35d1bd0e7
3 changed files with 23 additions and 18 deletions
|
@ -56,17 +56,17 @@ Item {
|
|||
anchorPoint.x: 0
|
||||
anchorPoint.y: mapItemImage.height
|
||||
coordinate: model.coordinate
|
||||
z: mapHelper.model.selectedDs === model.divesite ? mapHelper.model.count - 1 : 0
|
||||
z: mapHelper.model.isSelected(model.divesite) ? mapHelper.model.count - 1 : 0
|
||||
sourceItem: Image {
|
||||
id: mapItemImage
|
||||
source: "qrc:///dive-location-marker" + (mapHelper.model.selectedDs === model.divesite ? "-selected" : (mapHelper.editMode ? "-inactive" : "")) + "-icon"
|
||||
source: "qrc:///dive-location-marker" + (mapHelper.model.isSelected(model.divesite) ? "-selected" : (mapHelper.editMode ? "-inactive" : "")) + "-icon"
|
||||
SequentialAnimation {
|
||||
id: mapItemImageAnimation
|
||||
PropertyAnimation { target: mapItemImage; property: "scale"; from: 1.0; to: 0.7; duration: 120 }
|
||||
PropertyAnimation { target: mapItemImage; property: "scale"; from: 0.7; to: 1.0; duration: 80 }
|
||||
}
|
||||
MouseArea {
|
||||
drag.target: (mapHelper.editMode && mapHelper.model.selectedDs === model.divesite) ? mapItem : undefined
|
||||
drag.target: (mapHelper.editMode && mapHelper.model.isSelected(model.divesite)) ? mapItem : undefined
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
if (!mapHelper.editMode)
|
||||
|
@ -74,8 +74,8 @@ Item {
|
|||
}
|
||||
onDoubleClicked: map.doubleClickHandler(mapItem.coordinate)
|
||||
onReleased: {
|
||||
if (mapHelper.editMode && mapHelper.model.selectedDs === model.divesite) {
|
||||
mapHelper.updateCurrentDiveSiteCoordinatesFromMap(mapHelper.model.selectedDs, mapItem.coordinate)
|
||||
if (mapHelper.editMode && mapHelper.model.isSelected(model.divesite)) {
|
||||
mapHelper.updateCurrentDiveSiteCoordinatesFromMap(model.divesite, mapItem.coordinate)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ Item {
|
|||
id: mapItemText
|
||||
text: model.name
|
||||
font.pointSize: 11.0
|
||||
color: mapHelper.model.selectedDs === model.divesite ? "white" : "lightgrey"
|
||||
color: mapHelper.model.isSelected(model.divesite) ? "white" : "lightgrey"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue