diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-10-27 17:48:04 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-10-27 12:42:21 -0700 |
commit | bc11097dedd456506013caba5e886a0df4c74ead (patch) | |
tree | ae16d5eb1e048ed3bfadcebd462402657b4cd999 /profile-widget | |
parent | 6d78e63d19e4aed9b25a720ee8c6fdac450be289 (diff) | |
download | subsurface-bc11097dedd456506013caba5e886a0df4c74ead.tar.gz |
Cleanup: move common code into TankItem::createBar() function
Calculation of the x-position and the width of the tank-bar
was done outside of the function. Move it into the function
to make the caller a bit more readable.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'profile-widget')
-rw-r--r-- | profile-widget/tankitem.cpp | 15 | ||||
-rw-r--r-- | profile-widget/tankitem.h | 2 |
2 files changed, 7 insertions, 10 deletions
diff --git a/profile-widget/tankitem.cpp b/profile-widget/tankitem.cpp index d01b23965..02b1d57d7 100644 --- a/profile-widget/tankitem.cpp +++ b/profile-widget/tankitem.cpp @@ -46,8 +46,11 @@ void TankItem::setData(DivePlotDataModel *model, struct plot_info *plotInfo, str modelDataChanged(); } -void TankItem::createBar(qreal x, qreal w, struct gasmix gas) +void TankItem::createBar(int startTime, int stopTime, struct gasmix gas) { + qreal x = hAxis->posAtValue(startTime); + qreal w = hAxis->posAtValue(stopTime) - hAxis->posAtValue(startTime); + // pick the right gradient, size, position and text QGraphicsRectItem *rect = new QGraphicsRectItem(x, 0, w, height, this); if (gasmix_is_air(gas)) @@ -81,8 +84,6 @@ void TankItem::modelDataChanged(const QModelIndex&, const QModelIndex&) qDeleteAll(rects); rects.clear(); - qreal width, left; - // Find correct end of the dive plot for correct end of the tankbar struct plot_data *last_entry = &pInfoEntry[pInfoNr-1]; @@ -97,16 +98,12 @@ void TankItem::modelDataChanged(const QModelIndex&, const QModelIndex&) // work through all the gas changes and add the rectangle for each gas while it was used const struct event *ev = get_next_event(dc->events, "gaschange"); while (ev && (int)ev->time.seconds < last_entry->sec) { - width = hAxis->posAtValue(ev->time.seconds) - hAxis->posAtValue(startTime); - left = hAxis->posAtValue(startTime); - createBar(left, width, gasmix); + createBar(startTime, ev->time.seconds, gasmix); startTime = ev->time.seconds; gasmix = get_gasmix_from_event(&displayed_dive, ev); ev = get_next_event(ev->next, "gaschange"); } - width = hAxis->posAtValue(last_entry->sec) - hAxis->posAtValue(startTime); - left = hAxis->posAtValue(startTime); - createBar(left, width, gasmix); + createBar(startTime, last_entry->sec, gasmix); } void TankItem::setHorizontalAxis(DiveCartesianAxis *horizontal) diff --git a/profile-widget/tankitem.h b/profile-widget/tankitem.h index e7f82678e..4eb5710d6 100644 --- a/profile-widget/tankitem.h +++ b/profile-widget/tankitem.h @@ -24,7 +24,7 @@ public slots: void modelDataChanged(const QModelIndex &topLeft = QModelIndex(), const QModelIndex &bottomRight = QModelIndex()); private: - void createBar(qreal x, qreal w, struct gasmix gas); + void createBar(int startTime, int stopTime, struct gasmix gas); DiveCartesianAxis *hAxis; struct plot_data *pInfoEntry; int pInfoNr; |