profile: pass axes and model to DiveEventItem on construction

Firstly, there is no point in supporting DiveEventItems without
model and axis. Secondly, this avoid pointless position-
recalculations.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2021-06-05 09:15:51 +02:00 committed by Dirk Hohndel
parent c93fb83edf
commit fd2862042b
3 changed files with 14 additions and 29 deletions

View file

@ -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;