From 920eb7576ff3c5fab19c12b7b291042817422ac5 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 28 Oct 2018 21:16:42 +0100 Subject: 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 --- core/divesite.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'core/divesite.h') diff --git a/core/divesite.h b/core/divesite.h index 895412a4b..3ce87128a 100644 --- a/core/divesite.h +++ b/core/divesite.h @@ -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 -- cgit v1.2.3-70-g09d2