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:
Berthold Stoeger 2018-10-28 21:16:42 +01:00 committed by Dirk Hohndel
parent e8b3fdb4a6
commit 920eb7576f
5 changed files with 11 additions and 8 deletions

View file

@ -78,6 +78,9 @@ void merge_dive_sites(struct dive_site *ref, struct dive_site *dive_sites[], int
}
QString constructLocationTags(struct taxonomy_data *taxonomy, bool for_maintab);
/* Make pointer-to-dive_site a "Qt metatype" so that we can pass it through QVariants */
Q_DECLARE_METATYPE(dive_site *);
#endif
#endif // DIVESITE_H