summaryrefslogtreecommitdiffstats
path: root/profile-widget/divehandler.h
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-01-09 21:18:37 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-01-10 15:57:39 -0800
commit235146a95f5d79c54cf3b68b490c1cb0fb146b5f (patch)
tree71bd7b0ad845a52cd579302da423154bf6e4fe36 /profile-widget/divehandler.h
parent88c6ce988dfc1b5ad40eb9c425d705c8ac136570 (diff)
downloadsubsurface-235146a95f5d79c54cf3b68b490c1cb0fb146b5f.tar.gz
profile: pass dive to DiveHandler
The DiveHandler shows a context menu where a cylinder can be chosen. This indirectly accesses the global displayed_dive variable. Remove this in a step to make the profile reentrant. The code was quite ominous: instead of simply generating the list of cylinders, a global model was reset and then accessed with Qt's cumbersome model/view API. All this trampling over global state can be removed by simply making the function that generates the list globally accessible. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'profile-widget/divehandler.h')
-rw-r--r--profile-widget/divehandler.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/profile-widget/divehandler.h b/profile-widget/divehandler.h
index ecd0248c8..2bf3527ac 100644
--- a/profile-widget/divehandler.h
+++ b/profile-widget/divehandler.h
@@ -5,10 +5,12 @@
#include <QGraphicsPathItem>
#include <QElapsedTimer>
+struct dive;
+
class DiveHandler : public QObject, public QGraphicsEllipseItem {
Q_OBJECT
public:
- DiveHandler();
+ DiveHandler(const struct dive *d);
protected:
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
@@ -26,6 +28,7 @@ slots:
void selfRemove();
void changeGas();
private:
+ const struct dive *dive;
QElapsedTimer t;
};