diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-10-25 08:02:06 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-29 00:09:31 +0000 |
commit | b9b1b3146b3a0a05efcb11c50a953f3e8f2e023c (patch) | |
tree | a40397ddd9d370deb5ae66920d0bf2e98bf27868 /desktop-widgets/modeldelegates.cpp | |
parent | 6f98dca26e342dff90c5dba81bf81cbeab5f6e63 (diff) | |
download | subsurface-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 'desktop-widgets/modeldelegates.cpp')
-rw-r--r-- | desktop-widgets/modeldelegates.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/desktop-widgets/modeldelegates.cpp b/desktop-widgets/modeldelegates.cpp index 3a1428e02..7104af33c 100644 --- a/desktop-widgets/modeldelegates.cpp +++ b/desktop-widgets/modeldelegates.cpp @@ -11,6 +11,7 @@ #include "qt-models/weightsysteminfomodel.h" #include "qt-models/weightmodel.h" #include "qt-models/divetripmodel.h" +#include "qt-models/divelocationmodel.h" #include "core/qthelper.h" #include <QCompleter> @@ -452,9 +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 = get_dive_site_by_uuid( - index.model()->data(index.model()->index(index.row(),0)).toInt() - ); + struct dive_site *ds = (struct dive_site *) + index.model()->data(index.model()->index(index.row(), LocationInformationModel::DIVESITE)).value<void *>(); 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 |