diff options
author | Jan Mulder <jlmulder@xs4all.nl> | 2018-10-14 08:20:59 +0200 |
---|---|---|
committer | Jan Mulder <jlmulder@xs4all.nl> | 2018-10-14 09:22:56 +0200 |
commit | ac9bab7e2fdc08a3ce691a2c7035e315ec3d8ff2 (patch) | |
tree | 3f4330cfe8867af0ff8b1ea4191dd5b3dd5a429e | |
parent | 068b01aef203ee12c2d538141621c8ab5b13f0c8 (diff) | |
download | subsurface-ac9bab7e2fdc08a3ce691a2c7035e315ec3d8ff2.tar.gz |
Autogroup only when selected
Comits f427226b3b and 43c3885249f of the undo series introduced 2 calls
of autogroup_dives() without checking the autogroup global boolean.
This is a bug. An import from DC (for example) then triggers an
autogrouping, the divelist is autogrouped, and the UI button
is off.
This commit solves this. I've chosen for a guard in the autogroup_dives()
that now is a no-op when called when the user did not select autogrouping.
In additon, simplified the other calls to this function, as we do
not need to check before calling any more.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
-rw-r--r-- | core/divelist.c | 6 | ||||
-rw-r--r-- | desktop-widgets/mainwindow.cpp | 9 | ||||
-rw-r--r-- | qt-models/diveimportedmodel.cpp | 3 |
3 files changed, 9 insertions, 9 deletions
diff --git a/core/divelist.c b/core/divelist.c index d67f7935f..ad851ecc8 100644 --- a/core/divelist.c +++ b/core/divelist.c @@ -1023,7 +1023,8 @@ dive_trip_t *get_dives_to_autogroup(int start, int *from, int *to, bool *allocat } /* - * Walk the dives from the oldest dive, and see if we can autogroup them + * Walk the dives from the oldest dive, and see if we can autogroup them. + * But only do this when the user selected autogrouping. */ void autogroup_dives(void) { @@ -1032,6 +1033,9 @@ void autogroup_dives(void) int i, j; bool alloc; + if (!autogroup) + return; + for(i = 0; (trip = get_dives_to_autogroup(i, &from, &to, &alloc)) != NULL; i = to) { /* If this was newly allocated, add trip to list */ if (alloc) diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index ec2006405..dfa3f4c17 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -612,8 +612,7 @@ void MainWindow::on_actionCloudstorageopen_triggered() if (!parse_file(fileNamePtr.data(), &dive_table)) setCurrentFile(fileNamePtr.data()); process_loaded_dives(); - if (autogroup) - autogroup_dives(); + autogroup_dives(); Command::clear(); hideProgressBar(); refreshDisplay(); @@ -1713,8 +1712,7 @@ void MainWindow::importFiles(const QStringList fileNames) parse_file(fileNamePtr.data(), &table); } process_imported_dives(&table, false, false); - if (autogroup) - autogroup_dives(); + autogroup_dives(); Command::clear(); refreshDisplay(); } @@ -1738,8 +1736,7 @@ void MainWindow::loadFiles(const QStringList fileNames) hideProgressBar(); updateRecentFiles(); process_loaded_dives(); - if (autogroup) - autogroup_dives(); + autogroup_dives(); Command::clear(); refreshDisplay(); diff --git a/qt-models/diveimportedmodel.cpp b/qt-models/diveimportedmodel.cpp index 6926981d5..e988a8678 100644 --- a/qt-models/diveimportedmodel.cpp +++ b/qt-models/diveimportedmodel.cpp @@ -174,8 +174,7 @@ void DiveImportedModel::recordDives() } process_imported_dives(diveTable, true, true); - if (autogroup) - autogroup_dives(); + autogroup_dives(); } QHash<int, QByteArray> DiveImportedModel::roleNames() const { |