diff options
author | Tomaz Canabrava <tomaz.canabrava@gmail.com> | 2016-08-10 13:27:03 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2016-08-27 10:55:40 -0700 |
commit | 81d5d82b7bfb1a7a1cfe44b8d33befe9b31a2099 (patch) | |
tree | 31392ef07c43c9ac68ca95805b4865c5859c0848 /core | |
parent | 048379cc2b56257be4a435bb707d8a18c9958371 (diff) | |
download | subsurface-81d5d82b7bfb1a7a1cfe44b8d33befe9b31a2099.tar.gz |
Settings update: Clean up save user id local
So, prefs.save_userid_local is being set outside of
a preferences set (it's set to true and false while
loading the files via xml or git) and because of that
I had to bypass a few method calls.
When something triggers a preferences change, the
application will be notified that the preferences
changed, thing that I couldn't do while reading the
xml or git because that should be local-only.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/dive.c | 5 | ||||
-rw-r--r-- | core/load-git.c | 4 | ||||
-rw-r--r-- | core/parse-xml.c | 9 | ||||
-rw-r--r-- | core/subsurface-qt/SettingsObjectWrapper.cpp | 22 | ||||
-rw-r--r-- | core/subsurface-qt/SettingsObjectWrapper.h | 11 |
5 files changed, 25 insertions, 26 deletions
diff --git a/core/dive.c b/core/dive.c index d6fe0c8c4..e2107c120 100644 --- a/core/dive.c +++ b/core/dive.c @@ -3353,11 +3353,6 @@ timestamp_t get_times() return dive->when; } -void set_save_userid_local(short value) -{ - prefs.save_userid_local = value; -} - void set_userid(char *rUserId) { if (prefs.userid) diff --git a/core/load-git.c b/core/load-git.c index 670658d1b..abe1a5ad0 100644 --- a/core/load-git.c +++ b/core/load-git.c @@ -811,7 +811,7 @@ static void parse_settings_userid(char *line, struct membuffer *str, void *_unus (void) str; (void) _unused; if (line) { - set_save_userid_local(true); + prefs.save_userid_local = true; set_userid(line); } } @@ -1520,7 +1520,7 @@ static int parse_settings_entry(git_repository *repo, const git_tree_entry *entr git_blob *blob = git_tree_entry_blob(repo, entry); if (!blob) return report_error("Unable to read settings file"); - set_save_userid_local(false); + prefs.save_userid_local = false; for_each_line(blob, settings_parser, NULL); git_blob_free(blob); return 0; diff --git a/core/parse-xml.c b/core/parse-xml.c index 052cb124c..aa2e7125f 100644 --- a/core/parse-xml.c +++ b/core/parse-xml.c @@ -1771,7 +1771,12 @@ static void divecomputer_end(void) static void userid_start(void) { in_userid = true; - set_save_userid_local(true); //if the xml contains userid, keep saving it. + //if the xml contains userid, keep saving it. + // don't call the prefs method here as we don't wanna + // actually change the preferences, this is temporary and + // will be reverted when the file finishes. + + prefs.save_userid_local = true; } static void userid_stop(void) @@ -2045,7 +2050,7 @@ int parse_xml_buffer(const char *url, const char *buffer, int size, if (!doc) return report_error(translate("gettextFromC", "Failed to parse '%s'"), url); - set_save_userid_local(false); + prefs.save_userid_local = false; reset_all(); dive_start(); doc = test_xslt_transforms(doc, params); diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp index b0e552bf2..fe012c9b9 100644 --- a/core/subsurface-qt/SettingsObjectWrapper.cpp +++ b/core/subsurface-qt/SettingsObjectWrapper.cpp @@ -811,6 +811,17 @@ void CloudStorageSettings::setBackgroundSync(bool value) emit backgroundSyncChanged(value); } +void CloudStorageSettings::setSaveUserIdLocal(short int value) +{ + prefs.save_userid_local = value; + emit saveUserIdLocalChanged(value); +} + +short int CloudStorageSettings::saveUserIdLocal() const +{ + return prefs.save_userid_local; +} + void CloudStorageSettings::setBaseUrl(const QString& value) { free((void*)prefs.cloud_base_url); @@ -1621,17 +1632,6 @@ QObject(parent), { } -void SettingsObjectWrapper::setSaveUserIdLocal(short int value) -{ - Q_UNUSED(value); - //TODO: Find where this is stored on the preferences. -} - -short int SettingsObjectWrapper::saveUserIdLocal() const -{ - return prefs.save_userid_local; -} - SettingsObjectWrapper* SettingsObjectWrapper::instance() { static SettingsObjectWrapper settings; diff --git a/core/subsurface-qt/SettingsObjectWrapper.h b/core/subsurface-qt/SettingsObjectWrapper.h index c1fd8a7ef..157c7432c 100644 --- a/core/subsurface-qt/SettingsObjectWrapper.h +++ b/core/subsurface-qt/SettingsObjectWrapper.h @@ -262,6 +262,7 @@ class CloudStorageSettings : public QObject { Q_PROPERTY(QString userid READ userId WRITE setUserId NOTIFY userIdChanged) Q_PROPERTY(QString base_url READ baseUrl WRITE setBaseUrl NOTIFY baseUrlChanged) Q_PROPERTY(QString git_url READ gitUrl WRITE setGitUrl NOTIFY gitUrlChanged) + Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) Q_PROPERTY(bool git_local_only READ gitLocalOnly WRITE setGitLocalOnly NOTIFY gitLocalOnlyChanged) Q_PROPERTY(bool save_password_local READ savePasswordLocal WRITE setSavePasswordLocal NOTIFY savePasswordLocalChanged) Q_PROPERTY(short verification_status READ verificationStatus WRITE setVerificationStatus NOTIFY verificationStatusChanged) @@ -279,6 +280,7 @@ public: short verificationStatus() const; bool backgroundSync() const; bool gitLocalOnly() const; + short saveUserIdLocal() const; public slots: void setPassword(const QString& value); @@ -292,6 +294,7 @@ public slots: void setVerificationStatus(short value); void setBackgroundSync(bool value); void setGitLocalOnly(bool value); + void setSaveUserIdLocal(short value); signals: void passwordChanged(const QString& value); @@ -305,6 +308,8 @@ signals: void verificationStatusChanged(short value); void backgroundSyncChanged(bool value); void gitLocalOnlyChanged(bool value); + void saveUserIdLocalChanged(short value); + private: QString group; }; @@ -601,7 +606,6 @@ private: class SettingsObjectWrapper : public QObject { Q_OBJECT - Q_PROPERTY(short save_userid_local READ saveUserIdLocal WRITE setSaveUserIdLocal NOTIFY saveUserIdLocalChanged) Q_PROPERTY(TechnicalDetailsSettings* techical_details MEMBER techDetails CONSTANT) Q_PROPERTY(PartialPressureGasSettings* pp_gas MEMBER pp_gas CONSTANT) @@ -619,7 +623,6 @@ class SettingsObjectWrapper : public QObject { Q_PROPERTY(LocationServiceSettingsObjectWrapper* Location MEMBER location_settings CONSTANT) public: static SettingsObjectWrapper *instance(); - short saveUserIdLocal() const; TechnicalDetailsSettings *techDetails; PartialPressureGasSettings *pp_gas; @@ -635,12 +638,8 @@ public: AnimationsSettingsObjectWrapper *animation_settings; LocationServiceSettingsObjectWrapper *location_settings; -public slots: - void setSaveUserIdLocal(short value); private: SettingsObjectWrapper(QObject *parent = NULL); -signals: - void saveUserIdLocalChanged(short value); }; #endif |