From 2e6afb8e8900739080e9df206546913d5da06a12 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Tue, 6 Oct 2015 08:53:54 +0100 Subject: [PATCH] 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 --- load-git.c | 1 - parse-xml.c | 1 - qt-ui/preferences.cpp | 1 + qthelper.cpp | 3 +++ 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