diff --git a/profile-widget/diveeventitem.cpp b/profile-widget/diveeventitem.cpp index 3590a35c8..1a0694979 100644 --- a/profile-widget/diveeventitem.cpp +++ b/profile-widget/diveeventitem.cpp @@ -14,10 +14,12 @@ #define DEPTH_NOT_FOUND (-2342) -DiveEventItem::DiveEventItem(const struct dive *d, struct event *ev, struct gasmix lastgasmix, QGraphicsItem *parent) : DivePixmapItem(parent), - vAxis(NULL), - hAxis(NULL), - dataModel(NULL), +DiveEventItem::DiveEventItem(const struct dive *d, struct event *ev, struct gasmix lastgasmix, + DivePlotDataModel *model, DiveCartesianAxis *hAxis, DiveCartesianAxis *vAxis, + int speed, QGraphicsItem *parent) : DivePixmapItem(parent), + vAxis(vAxis), + hAxis(hAxis), + dataModel(model), internalEvent(clone_event(ev)), dive(d) { @@ -26,6 +28,10 @@ DiveEventItem::DiveEventItem(const struct dive *d, struct event *ev, struct gasm setupPixmap(lastgasmix); setupToolTipString(lastgasmix); recalculatePos(0); + + + connect(vAxis, &DiveCartesianAxis::sizeChanged, this, + [speed, this] { recalculatePos(speed); }); } DiveEventItem::~DiveEventItem() @@ -33,26 +39,6 @@ DiveEventItem::~DiveEventItem() free(internalEvent); } -void DiveEventItem::setHorizontalAxis(DiveCartesianAxis *axis) -{ - hAxis = axis; - recalculatePos(0); -} - -void DiveEventItem::setModel(DivePlotDataModel *model) -{ - dataModel = model; - recalculatePos(0); -} - -void DiveEventItem::setVerticalAxis(DiveCartesianAxis *axis, int speed) -{ - vAxis = axis; - recalculatePos(0); - connect(vAxis, &DiveCartesianAxis::sizeChanged, this, - [speed, this] { recalculatePos(speed); }); -} - struct event *DiveEventItem::getEvent() { return internalEvent; diff --git a/profile-widget/diveeventitem.h b/profile-widget/diveeventitem.h index a04d89214..1bb217d92 100644 --- a/profile-widget/diveeventitem.h +++ b/profile-widget/diveeventitem.h @@ -11,7 +11,9 @@ struct event; class DiveEventItem : public DivePixmapItem { Q_OBJECT public: - DiveEventItem(const struct dive *d, struct event *ev, struct gasmix lastgasmix, QGraphicsItem *parent = 0); + DiveEventItem(const struct dive *d, struct event *ev, struct gasmix lastgasmix, + DivePlotDataModel *model, DiveCartesianAxis *hAxis, DiveCartesianAxis *vAxis, + int speed, QGraphicsItem *parent = nullptr); ~DiveEventItem(); struct event *getEvent(); void eventVisibilityChanged(const QString &eventName, bool visible); diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index e4b624b8b..3503df75f 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -725,10 +725,7 @@ void ProfileWidget2::plotDive(const struct dive *dIn, int dcIn, bool doClearPict // printMode is always selected for SUBSURFACE_MOBILE due to font problems // BUT events are wanted. #endif - DiveEventItem *item = new DiveEventItem(d, event, lastgasmix); - item->setHorizontalAxis(timeAxis); - item->setVerticalAxis(profileYAxis, qPrefDisplay::animation_speed()); - item->setModel(dataModel); + DiveEventItem *item = new DiveEventItem(d, event, lastgasmix, dataModel, timeAxis, profileYAxis, animSpeed); item->setZValue(2); #ifndef SUBSURFACE_MOBILE item->setScale(printMode ? 4 :1);