diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-12-24 19:21:30 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-01-10 15:57:39 -0800 |
commit | 02fbaffe4c5c4e60c2b84b71f4f4b00ecb78ef9f (patch) | |
tree | 07b08e1fa905c097e952e62cac91636163430c70 /profile-widget/diveprofileitem.cpp | |
parent | e61466e178e9062a7202f24f609baa12d21df5ea (diff) | |
download | subsurface-02fbaffe4c5c4e60c2b84b71f4f4b00ecb78ef9f.tar.gz |
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>
Diffstat (limited to 'profile-widget/diveprofileitem.cpp')
-rw-r--r-- | profile-widget/diveprofileitem.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp index c69e08489..54acee86b 100644 --- a/profile-widget/diveprofileitem.cpp +++ b/profile-widget/diveprofileitem.cpp @@ -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) |