mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Handle dives with no samples
This occurs upon importing dives for example via CSV. Make sure the profile display is cleared when selecting such a dive rather than showing a different dive. Allow editing the profile for such a dive. Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
parent
876a09753a
commit
6b2e56e513
2 changed files with 5 additions and 3 deletions
|
@ -1512,7 +1512,7 @@ void MainWindow::on_actionImportDiveSites_triggered()
|
|||
void MainWindow::editCurrentDive()
|
||||
{
|
||||
// We only allow editing of the profile for manually added dives.
|
||||
if (!current_dive || !same_string(current_dive->dc.model, "manually added dive") || !userMayChangeAppState())
|
||||
if (!current_dive || (!same_string(current_dive->dc.model, "manually added dive") && current_dive->dc.samples) || !userMayChangeAppState())
|
||||
return;
|
||||
|
||||
// This shouldn't be possible, but let's make sure no weird "double editing" takes place.
|
||||
|
|
|
@ -528,8 +528,10 @@ void ProfileWidget2::plotDive(const struct dive *dIn, int dcIn, bool doClearPict
|
|||
}
|
||||
|
||||
const struct divecomputer *currentdc = get_dive_dc_const(d, dc);
|
||||
if (!currentdc || !currentdc->samples)
|
||||
if (!currentdc || !currentdc->samples) {
|
||||
setEmptyState();
|
||||
return;
|
||||
}
|
||||
|
||||
// special handling when switching from empty state
|
||||
animSpeed = instant || currentState == EMPTY || printMode ? 0 : qPrefDisplay::animation_speed();
|
||||
|
@ -1359,7 +1361,7 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event)
|
|||
changeMode->addAction(gettextFromC::tr(divemode_text_ui[PSCR]),
|
||||
[this, seconds](){ addDivemodeSwitch(seconds, PSCR); });
|
||||
|
||||
if (same_string(get_dive_dc_const(d, dc)->model, "manually added dive"))
|
||||
if (same_string(get_dive_dc_const(d, dc)->model, "manually added dive") || !get_dive_dc_const(d, dc)->samples)
|
||||
m.addAction(tr("Edit the profile"), this, &ProfileWidget2::editCurrentDive);
|
||||
|
||||
if (DiveEventItem *item = dynamic_cast<DiveEventItem *>(sceneItem)) {
|
||||
|
|
Loading…
Reference in a new issue