mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
235146a95f
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>
35 lines
723 B
C++
35 lines
723 B
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVEHANDLER_HPP
|
|
#define DIVEHANDLER_HPP
|
|
|
|
#include <QGraphicsPathItem>
|
|
#include <QElapsedTimer>
|
|
|
|
struct dive;
|
|
|
|
class DiveHandler : public QObject, public QGraphicsEllipseItem {
|
|
Q_OBJECT
|
|
public:
|
|
DiveHandler(const struct dive *d);
|
|
|
|
protected:
|
|
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
|
|
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
|
|
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
|
|
signals:
|
|
void moved();
|
|
void clicked();
|
|
void released();
|
|
private:
|
|
int parentIndex();
|
|
public
|
|
slots:
|
|
void selfRemove();
|
|
void changeGas();
|
|
private:
|
|
const struct dive *dive;
|
|
QElapsedTimer t;
|
|
};
|
|
|
|
#endif
|