mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Map: export isSelected as attribute from MapLocationModel
Recently we changed the MapLocationModel-items to store whether they are selected. Thus, we can directly export an isSelected flag instead of calling a function taking a dive-site argument. 1) This makes the QML easier to read. 2) This avoids passing pointers through QML which has caused us lots of pain. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
9322092e41
commit
1d01fff006
3 changed files with 8 additions and 4 deletions
|
@ -66,7 +66,7 @@ Item {
|
||||||
PropertyAnimation { target: mapItemImage; property: "scale"; from: 0.7; to: 1.0; duration: 80 }
|
PropertyAnimation { target: mapItemImage; property: "scale"; from: 0.7; to: 1.0; duration: 80 }
|
||||||
}
|
}
|
||||||
MouseArea {
|
MouseArea {
|
||||||
drag.target: (mapHelper.editMode && mapHelper.model.isSelected(model.divesite)) ? mapItem : undefined
|
drag.target: (mapHelper.editMode && model.isSelected) ? mapItem : undefined
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (!mapHelper.editMode && model.divesite)
|
if (!mapHelper.editMode && model.divesite)
|
||||||
|
@ -74,7 +74,7 @@ Item {
|
||||||
}
|
}
|
||||||
onDoubleClicked: map.doubleClickHandler(mapItem.coordinate)
|
onDoubleClicked: map.doubleClickHandler(mapItem.coordinate)
|
||||||
onReleased: {
|
onReleased: {
|
||||||
if (mapHelper.editMode && mapHelper.model.isSelected(model.divesite)) {
|
if (mapHelper.editMode && model.isSelected) {
|
||||||
mapHelper.updateCurrentDiveSiteCoordinatesFromMap(model.divesite, mapItem.coordinate)
|
mapHelper.updateCurrentDiveSiteCoordinatesFromMap(model.divesite, mapItem.coordinate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ Item {
|
||||||
id: mapItemText
|
id: mapItemText
|
||||||
text: model.name
|
text: model.name
|
||||||
font.pointSize: 11.0
|
font.pointSize: 11.0
|
||||||
color: mapHelper.model.isSelected(model.divesite) ? "white" : "lightgrey"
|
color: model.isSelected ? "white" : "lightgrey"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,8 @@ QVariant MapLocation::getRole(int role) const
|
||||||
QString("qrc:///dive-location-marker-icon");
|
QString("qrc:///dive-location-marker-icon");
|
||||||
case Roles::RoleZ:
|
case Roles::RoleZ:
|
||||||
return m_selected ? 1 : 0;
|
return m_selected ? 1 : 0;
|
||||||
|
case Roles::RoleIsSelected:
|
||||||
|
return QVariant::fromValue(m_selected);
|
||||||
default:
|
default:
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
@ -105,6 +107,7 @@ QHash<int, QByteArray> MapLocationModel::roleNames() const
|
||||||
roles[MapLocation::Roles::RoleName] = "name";
|
roles[MapLocation::Roles::RoleName] = "name";
|
||||||
roles[MapLocation::Roles::RolePixmap] = "pixmap";
|
roles[MapLocation::Roles::RolePixmap] = "pixmap";
|
||||||
roles[MapLocation::Roles::RoleZ] = "z";
|
roles[MapLocation::Roles::RoleZ] = "z";
|
||||||
|
roles[MapLocation::Roles::RoleIsSelected] = "isSelected";
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,8 @@ public:
|
||||||
RoleCoordinate,
|
RoleCoordinate,
|
||||||
RoleName,
|
RoleName,
|
||||||
RolePixmap,
|
RolePixmap,
|
||||||
RoleZ
|
RoleZ,
|
||||||
|
RoleIsSelected
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Add table
Reference in a new issue