summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@gmail.com>2016-08-10 13:27:03 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-08-27 10:55:40 -0700
commit81d5d82b7bfb1a7a1cfe44b8d33befe9b31a2099 (patch)
tree31392ef07c43c9ac68ca95805b4865c5859c0848 /core
parent048379cc2b56257be4a435bb707d8a18c9958371 (diff)
downloadsubsurface-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.c5
-rw-r--r--core/load-git.c4
-rw-r--r--core/parse-xml.c9
-rw-r--r--core/subsurface-qt/SettingsObjectWrapper.cpp22
-rw-r--r--core/subsurface-qt/SettingsObjectWrapper.h11
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