mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 21:23:24 +00:00
profile: don't interpret NULL as current_dive in plotDive()
ProfileWidget2::plotDive() had this weird interface, where passing in NULL as dive would mean "show current_dive". However, most callers would already pass in current_dive. Therefore, unify and always pass in current_dive if the caller wants to draw the current dive. This allows us to interpret NULL as "show empty profile". Thus, passing in current_dive when there is no current_dive simply shows an empty profile. This makes the calling code in MainWindow::selectionChanged() simpler. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
c1963fd5dd
commit
17556cc66c
4 changed files with 8 additions and 13 deletions
|
@ -453,13 +453,12 @@ void MainWindow::selectionChanged()
|
|||
if (!current_dive) {
|
||||
mainTab->clearTabs();
|
||||
mainTab->updateDiveInfo();
|
||||
graphics->setEmptyState();
|
||||
} else {
|
||||
graphics->plotDive(nullptr, false, true);
|
||||
mainTab->updateDiveInfo();
|
||||
configureToolbar();
|
||||
enableDisableOtherDCsActions();
|
||||
}
|
||||
graphics->plotDive(current_dive, false, true);
|
||||
MapWidget::instance()->selectionChanged();
|
||||
}
|
||||
|
||||
|
@ -1112,7 +1111,7 @@ void MainWindow::on_actionPreviousDC_triggered()
|
|||
unsigned nrdc = number_of_computers(current_dive);
|
||||
dc_number = (dc_number + nrdc - 1) % nrdc;
|
||||
configureToolbar();
|
||||
graphics->plotDive(nullptr, false, true);
|
||||
graphics->plotDive(current_dive, false, true);
|
||||
mainTab->updateDiveInfo();
|
||||
}
|
||||
|
||||
|
@ -1121,7 +1120,7 @@ void MainWindow::on_actionNextDC_triggered()
|
|||
unsigned nrdc = number_of_computers(current_dive);
|
||||
dc_number = (dc_number + 1) % nrdc;
|
||||
configureToolbar();
|
||||
graphics->plotDive(nullptr, false, true);
|
||||
graphics->plotDive(current_dive, false, true);
|
||||
mainTab->updateDiveInfo();
|
||||
}
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ void Printer::render(int Pages = 0)
|
|||
qPrefDisplay::set_animation_speed(animationOriginal);
|
||||
|
||||
//replot the dive after returning the settings
|
||||
profile->plotDive(0, true, true);
|
||||
profile->plotDive(current_dive, true, true);
|
||||
}
|
||||
|
||||
//value: ranges from 0 : 100 and shows the progress of the templating engine
|
||||
|
|
|
@ -381,8 +381,7 @@ void ProfileWidget2::setupItemOnScene()
|
|||
|
||||
void ProfileWidget2::replot()
|
||||
{
|
||||
dataModel->clear();
|
||||
plotDive(nullptr, true, false);
|
||||
plotDive(current_dive, true, false);
|
||||
}
|
||||
|
||||
void ProfileWidget2::createPPGas(PartialPressureGasItem *item, int verticalColumn, color_index_t color, color_index_t colorAlert,
|
||||
|
@ -566,11 +565,8 @@ void ProfileWidget2::plotDive(const struct dive *d, bool force, bool doClearPict
|
|||
#endif
|
||||
if (currentState != ADD && currentState != PLAN) {
|
||||
if (!d) {
|
||||
if (!current_dive) {
|
||||
setEmptyState();
|
||||
return;
|
||||
}
|
||||
d = current_dive; // display the current dive
|
||||
setEmptyState();
|
||||
return;
|
||||
}
|
||||
|
||||
// No need to do this again if we are already showing the same dive
|
||||
|
|
|
@ -76,7 +76,7 @@ public:
|
|||
~ProfileWidget2();
|
||||
void resetZoom();
|
||||
void scale(qreal sx, qreal sy);
|
||||
void plotDive(const struct dive *d = 0, bool force = false, bool clearPictures = false, bool instant = false);
|
||||
void plotDive(const struct dive *d, bool force = false, bool clearPictures = false, bool instant = false);
|
||||
void setupItem(AbstractProfilePolygonItem *item, DiveCartesianAxis *vAxis, int vData, int hData, int zValue);
|
||||
void setPrintMode(bool mode, bool grayscale = false);
|
||||
bool getPrintMode();
|
||||
|
|
Loading…
Add table
Reference in a new issue