diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-10-28 21:16:42 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-29 00:09:31 +0000 |
commit | 920eb7576ff3c5fab19c12b7b291042817422ac5 (patch) | |
tree | 10af74e93306ea0e3577b30ea9704545185462e6 /desktop-widgets/locationinformation.cpp | |
parent | e8b3fdb4a6936c1130395e039963839d64f2b396 (diff) | |
download | subsurface-920eb7576ff3c5fab19c12b7b291042817422ac5.tar.gz |
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>
Diffstat (limited to 'desktop-widgets/locationinformation.cpp')
-rw-r--r-- | desktop-widgets/locationinformation.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp index 2b57c122c..69ecbc9b2 100644 --- a/desktop-widgets/locationinformation.cpp +++ b/desktop-widgets/locationinformation.cpp @@ -82,7 +82,7 @@ void LocationInformationWidget::mergeSelectedDiveSites() std::vector<struct dive_site *> selected_dive_sites; selected_dive_sites.reserve(selection.count()); Q_FOREACH (const QModelIndex &idx, selection) { - struct dive_site *ds = (struct dive_site *)idx.data(LocationInformationModel::DIVESITE_ROLE).value<void *>(); + dive_site *ds = idx.data(LocationInformationModel::DIVESITE_ROLE).value<dive_site *>(); if (ds) selected_dive_sites.push_back(ds); } @@ -507,7 +507,7 @@ void DiveLocationLineEdit::itemActivated(const QModelIndex &index) if (index.column() == LocationInformationModel::DIVESITE) idx = index.model()->index(index.row(), LocationInformationModel::NAME); - dive_site *ds = (dive_site *)index.model()->index(index.row(), LocationInformationModel::DIVESITE).data().value<void *>(); + dive_site *ds = index.model()->index(index.row(), LocationInformationModel::DIVESITE).data().value<dive_site *>(); currType = ds == RECENTLY_ADDED_DIVESITE ? NEW_DIVE_SITE : EXISTING_DIVE_SITE; currDs = ds; setText(idx.data().toString()); |