summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2017-12-11 23:20:18 +0100
committerGravatar Jan Mulder <jlmulder@xs4all.nl>2018-01-08 12:01:04 +0100
commit099662023c89f5bb0a3e2e1b803de22d56b20f6b (patch)
tree745fc10122feef73b2d89ffacc75af6eb9560186
parent35b5b9282f5d2068651dee7eb3993978fc258ac7 (diff)
downloadsubsurface-099662023c89f5bb0a3e2e1b803de22d56b20f6b.tar.gz
Move resetting of current file out of clear_dive_file_data()
This is the only case where C-code sets the current file. Remove this call for a better separation of C-backend and C++-frontend parts. There were four callers of clear_dive_file_data(). Two of them would call set_filename() anyway. For the remaining two add an explicit call to set_filename(). This commit fixes a bug introduced in commit b3901aa8f90499ee2a34efdddc2463105afc53f1: The cloud-online menu entry was still enabled after "closing" the cloud storage. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--core/divelist.c3
-rw-r--r--desktop-widgets/mainwindow.cpp1
-rw-r--r--mobile-widgets/qmlmanager.cpp1
3 files changed, 2 insertions, 3 deletions
diff --git a/core/divelist.c b/core/divelist.c
index 7c3201a3d..87151558a 100644
--- a/core/divelist.c
+++ b/core/divelist.c
@@ -1426,9 +1426,6 @@ void clear_dive_file_data()
clear_dive(&displayed_dive);
clear_dive_site(&displayed_dive_site);
- free((void *)existing_filename);
- existing_filename = NULL;
-
reset_min_datafile_version();
saved_git_id = "";
}
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index 4aa4aa1b6..b13980c85 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -746,6 +746,7 @@ void MainWindow::closeCurrentFile()
/* free the dives and trips */
clear_git_id();
clear_dive_file_data();
+ setCurrentFile(NULL);
cleanUpEmpty();
mark_divelist_changed(false);
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp
index 697d71dc8..296243f7e 100644
--- a/mobile-widgets/qmlmanager.cpp
+++ b/mobile-widgets/qmlmanager.cpp
@@ -602,6 +602,7 @@ void QMLManager::loadDivesWithValidCredentials()
appendTextToLog(errorString);
setNotificationText(errorString);
revertToNoCloudIfNeeded();
+ set_filename(NULL);
return;
}
consumeFinishedLoad(currentDiveTimestamp);