mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive site: pass pointer-to-dive_site via QVariant
There was this ugly pattern of passing pointers-to-dive_site via a QVariant of void * type. This is of course inherently unsafe. Pass these pointers using their proper types instead. This makes it necessary to register them in Qt's meta-type system. Doing so, fixes a bug: QML couldn't call into updateDiveSiteCoordinates() because it didn't know the type and thus the coordinates of the moved flag were not reflected in the divesite-dialog. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
e8b3fdb4a6
commit
920eb7576f
5 changed files with 11 additions and 8 deletions
|
@ -453,8 +453,8 @@ void LocationFilterDelegate::paint(QPainter *painter, const QStyleOptionViewItem
|
|||
QString diveSiteName = index.data().toString();
|
||||
QString bottomText;
|
||||
QIcon icon = index.data(Qt::DecorationRole).value<QIcon>();
|
||||
struct dive_site *ds = (struct dive_site *)
|
||||
index.model()->data(index.model()->index(index.row(), LocationInformationModel::DIVESITE)).value<void *>();
|
||||
struct dive_site *ds =
|
||||
index.model()->data(index.model()->index(index.row(), LocationInformationModel::DIVESITE)).value<dive_site *>();
|
||||
struct dive_site *currentDiveSite = current_dive ? get_dive_site_for_dive(current_dive) : nullptr;
|
||||
bool currentDiveSiteHasGPS = currentDiveSite && dive_site_has_gps_location(currentDiveSite);
|
||||
//Special case: do not show name, but instead, show
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue