profile: explicitly clear profile items

In contrast to most other items, which are cleared in the
setEmptyState() function, the profile items are cleared
indirectly via a signal from the model. Very hard to follow
and indeed, I thought I could just remove the slot.

Do this explicitly instead for deterministic code.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-12-24 19:21:30 +01:00 committed by Dirk Hohndel
parent e61466e178
commit 02fbaffe4c
3 changed files with 10 additions and 9 deletions

View file

@ -18,12 +18,18 @@ AbstractProfilePolygonItem::AbstractProfilePolygonItem(const DivePlotDataModel &
{
setCacheMode(DeviceCoordinateCache);
connect(&dataModel, &DivePlotDataModel::dataChanged, this, &AbstractProfilePolygonItem::modelDataChanged);
connect(&dataModel, &DivePlotDataModel::rowsAboutToBeRemoved, this, &AbstractProfilePolygonItem::modelDataRemoved);
connect(&hAxis, &DiveCartesianAxis::sizeChanged, this, &AbstractProfilePolygonItem::replot);
connect(&vAxis, &DiveCartesianAxis::sizeChanged, this, &AbstractProfilePolygonItem::replot);
connect(&vAxis, &DiveCartesianAxis::maxChanged, this, &AbstractProfilePolygonItem::replot);
}
void AbstractProfilePolygonItem::clear()
{
setPolygon(QPolygonF());
qDeleteAll(texts);
texts.clear();
}
void AbstractProfilePolygonItem::replot()
{
modelDataChanged();
@ -34,13 +40,6 @@ void AbstractProfilePolygonItem::setVisible(bool visible)
QGraphicsPolygonItem::setVisible(visible);
}
void AbstractProfilePolygonItem::modelDataRemoved(const QModelIndex&, int, int)
{
setPolygon(QPolygonF());
qDeleteAll(texts);
texts.clear();
}
bool AbstractProfilePolygonItem::shouldCalculateStuff(const QModelIndex &topLeft, const QModelIndex &bottomRight)
{
if (dataModel.rowCount() == 0)