aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-06 08:53:54 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-06 08:53:54 +0100
commit2e6afb8e8900739080e9df206546913d5da06a12 (patch)
tree69c1740128595d4eee04fe1dbf088d9433283aed
parente5fa424a67b351a7c08ab4c9b2396b612635bef4 (diff)
downloadsubsurface-2e6afb8e8900739080e9df206546913d5da06a12.tar.gz
Correctly handle the webservice userid in preferences
Because of the way that the webservice userid can be saved both in the preferences and in a data file it was treated differently than other preferences settings - which prevented the reset of the preferences from actually clearing it. This patch makes sure that if the preferences are reset the preferences UI reflects that. To make this work the data file loading functions can no longer be allowed to just simply clear out the userid preference value just in case they might load a new one. Fixes #939 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--load-git.c1
-rw-r--r--parse-xml.c1
-rw-r--r--qt-ui/preferences.cpp1
-rw-r--r--qthelper.cpp3
4 files changed, 4 insertions, 2 deletions
diff --git a/load-git.c b/load-git.c
index 8c7df7bcc..3c593bb4c 100644
--- a/load-git.c
+++ b/load-git.c
@@ -1469,7 +1469,6 @@ static int parse_settings_entry(git_repository *repo, const git_tree_entry *entr
if (!blob)
return report_error("Unable to read settings file");
set_save_userid_local(false);
- set_userid("");
for_each_line(blob, settings_parser, NULL);
git_blob_free(blob);
return 0;
diff --git a/parse-xml.c b/parse-xml.c
index 5f4b667c5..3d86222b9 100644
--- a/parse-xml.c
+++ b/parse-xml.c
@@ -2022,7 +2022,6 @@ int parse_xml_buffer(const char *url, const char *buffer, int size,
return report_error(translate("gettextFromC", "Failed to parse '%s'"), url);
set_save_userid_local(false);
- set_userid("");
reset_all();
dive_start();
doc = test_xslt_transforms(doc, params);
diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp
index 615f0b84e..32f05c4ab 100644
--- a/qt-ui/preferences.cpp
+++ b/qt-ui/preferences.cpp
@@ -239,6 +239,7 @@ void PreferencesDialog::setUiFromPrefs()
ui.save_password_local->setChecked(prefs.save_password_local);
cloudPinNeeded();
ui.cloud_background_sync->setChecked(prefs.cloud_background_sync);
+ ui.default_uid->setText(prefs.userid);
// GeoManagement
#ifdef DISABLED
diff --git a/qthelper.cpp b/qthelper.cpp
index 4b80a8093..d24bfde53 100644
--- a/qthelper.cpp
+++ b/qthelper.cpp
@@ -1536,6 +1536,9 @@ void loadPreferences()
prefs.cloud_git_url = strdup(qPrintable(QString(prefs.cloud_base_url) + "/git"));
s.endGroup();
+ // Subsurface webservice id is stored outside of the groups
+ GET_TXT("subsurface_webservice_uid", userid);
+
// GeoManagement
s.beginGroup("geocoding");
#ifdef DISABLED