summaryrefslogtreecommitdiffstats
path: root/qt-models/divelocationmodel.h
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-10-25 08:02:06 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-10-29 00:09:31 +0000
commitb9b1b3146b3a0a05efcb11c50a953f3e8f2e023c (patch)
treea40397ddd9d370deb5ae66920d0bf2e98bf27868 /qt-models/divelocationmodel.h
parent6f98dca26e342dff90c5dba81bf81cbeab5f6e63 (diff)
downloadsubsurface-b9b1b3146b3a0a05efcb11c50a953f3e8f2e023c.tar.gz
Dive site: remove UUIDs from LocationInformationModel
Replace UUIDs from LocationInformationModel and fix the fallout. Notably, replace the UUID "column" by a DIVESITE "column". Getting pointers through Qt's QVariant is horrible, we'll have to think about a better solution. RECENTLY_ADDED_DIVESITE now defines to a special pointer to struct dive_site (defined as ~0). This fixes an interesting logic bug: The old code checked the uuid of the LocationInformationModel (currUuid) for the value "1", which corresponded to RECENTLY_ADDED_DIVESITE. If equal, currType would be set to NEW_DIVE_SITE. Later, _currType_ was compared against _RECENTLY_ADDED_DIVESITE_. This would only work because NEW_DIVE_SITE and RECENTLY_ADDED_DIVESITE both were defined as 1. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/divelocationmodel.h')
-rw-r--r--qt-models/divelocationmodel.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/qt-models/divelocationmodel.h b/qt-models/divelocationmodel.h
index 5f95d5975..407031590 100644
--- a/qt-models/divelocationmodel.h
+++ b/qt-models/divelocationmodel.h
@@ -8,14 +8,14 @@
#include <stdint.h>
#include "core/units.h"
-#define RECENTLY_ADDED_DIVESITE 1
+#define RECENTLY_ADDED_DIVESITE ((struct dive_site *)~0)
class LocationInformationModel : public QAbstractTableModel {
Q_OBJECT
public:
// Common columns, roles and accessor function for all dive-site models.
// Thus, different views can connect to different models.
- enum Columns { UUID, NAME, LATITUDE, LONGITUDE, COORDS, DESCRIPTION, NOTES, TAXONOMY_1, TAXONOMY_2, TAXONOMY_3, COLUMNS};
+ enum Columns { DIVESITE, NAME, LATITUDE, LONGITUDE, COORDS, DESCRIPTION, NOTES, TAXONOMY_1, TAXONOMY_2, TAXONOMY_3, COLUMNS};
enum Roles { DIVESITE_ROLE = Qt::UserRole + 1 };
static QVariant getDiveSiteData(const struct dive_site *ds, int column, int role);
@@ -37,12 +37,12 @@ private:
class GPSLocationInformationModel : public QSortFilterProxyModel {
Q_OBJECT
private:
- uint32_t ignoreUuid;
+ const struct dive_site *ignoreDs;
location_t location;
bool filterAcceptsRow(int sourceRow, const QModelIndex &source_parent) const override;
public:
GPSLocationInformationModel(QObject *parent = nullptr);
- void set(uint32_t ignoreUuid, const location_t &);
+ void set(const struct dive_site *ignoreDs, const location_t &);
void setCoordinates(const location_t &);
};