summaryrefslogtreecommitdiffstats
path: root/core/settings
diff options
context:
space:
mode:
authorGravatar jan Iversen <jani@apache.org>2018-07-18 20:47:59 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-07-25 08:35:04 -0700
commitf1648d297b174024bf772cbd6b482185532e0812 (patch)
treefd6b7bcc3346cdf0581d8ca91c8529516385517a /core/settings
parent597aa75348f8282e9a9d6349dd06192740fccd1f (diff)
downloadsubsurface-f1648d297b174024bf772cbd6b482185532e0812.tar.gz
core: qPref replace COPY_TXT with copy_txt in qPrefPrivate
Add copy_txt function to qPrefPrivate class Remove macro COPY_TXT from qPrefPrivate.h Replace use of COPY_TXT with copy_txt in qPref classes copy_txt is only once, COPY_TXT was expanded approx. 160 times, so this commit saves space (and removes a macro). Signed-off-by: Jan Iversen <jani@apache.org>
Diffstat (limited to 'core/settings')
-rw-r--r--core/settings/qPrefCloudStorage.cpp10
-rw-r--r--core/settings/qPrefDisplay.cpp2
-rw-r--r--core/settings/qPrefPrivate.cpp7
-rw-r--r--core/settings/qPrefPrivate.h13
4 files changed, 17 insertions, 15 deletions
diff --git a/core/settings/qPrefCloudStorage.cpp b/core/settings/qPrefCloudStorage.cpp
index 68e0bd027..1f6f23ece 100644
--- a/core/settings/qPrefCloudStorage.cpp
+++ b/core/settings/qPrefCloudStorage.cpp
@@ -35,8 +35,8 @@ void qPrefCloudStorage::set_cloud_base_url(const QString& value)
if (value != prefs.cloud_base_url) {
// only free and set if not default
if (prefs.cloud_base_url != default_prefs.cloud_base_url) {
- COPY_TXT(cloud_base_url, value);
- COPY_TXT(cloud_git_url, QString(prefs.cloud_base_url) + "/git");
+ qPrefPrivate::copy_txt(&prefs.cloud_base_url, value);
+ qPrefPrivate::copy_txt(&prefs.cloud_git_url, QString(prefs.cloud_base_url) + "/git");
}
disk_cloud_base_url(true);
@@ -55,7 +55,7 @@ void qPrefCloudStorage::set_cloud_git_url(const QString& value)
if (value != prefs.cloud_git_url) {
// only free and set if not default
if (prefs.cloud_git_url != default_prefs.cloud_git_url) {
- COPY_TXT(cloud_git_url, value);
+ qPrefPrivate::copy_txt(&prefs.cloud_git_url, value);
}
disk_cloud_git_url(true);
emit cloud_git_url_changed(value);
@@ -73,7 +73,7 @@ void qPrefCloudStorage::set_cloud_storage_newpassword(const QString& value)
if (value == prefs.cloud_storage_newpassword)
return;
- COPY_TXT(cloud_storage_newpassword, value);
+ qPrefPrivate::copy_txt(&prefs.cloud_storage_newpassword, value);
// NOT saved on disk, because it is only temporary
emit cloud_storage_newpassword_changed(value);
@@ -83,7 +83,7 @@ GET_PREFERENCE_TXT(CloudStorage, cloud_storage_password);
void qPrefCloudStorage::set_cloud_storage_password(const QString& value)
{
if (value != prefs.cloud_storage_password) {
- COPY_TXT(cloud_storage_password,value);
+ qPrefPrivate::copy_txt(&prefs.cloud_storage_password, value);
disk_cloud_storage_password(true);
emit cloud_storage_password_changed(value);
}
diff --git a/core/settings/qPrefDisplay.cpp b/core/settings/qPrefDisplay.cpp
index 55a0129a9..e11930b5e 100644
--- a/core/settings/qPrefDisplay.cpp
+++ b/core/settings/qPrefDisplay.cpp
@@ -35,7 +35,7 @@ void qPrefDisplay::set_divelist_font(const QString& value)
if (newValue != prefs.divelist_font &&
!subsurface_ignore_font(qPrintable(newValue))) {
- COPY_TXT(divelist_font, value);
+ qPrefPrivate::copy_txt(&prefs.divelist_font, value);
disk_divelist_font(true);
qApp->setFont(QFont(newValue));
diff --git a/core/settings/qPrefPrivate.cpp b/core/settings/qPrefPrivate.cpp
index 53b99c4e5..32b00ee79 100644
--- a/core/settings/qPrefPrivate.cpp
+++ b/core/settings/qPrefPrivate.cpp
@@ -9,3 +9,10 @@ qPrefPrivate *qPrefPrivate::instance()
static qPrefPrivate *self = new qPrefPrivate;
return self;
}
+
+void qPrefPrivate::copy_txt(const char **name, const QString& string)
+{
+ free((void *)*name);
+ *name = copy_qstring(string);
+}
+
diff --git a/core/settings/qPrefPrivate.h b/core/settings/qPrefPrivate.h
index e4131e9e4..558333990 100644
--- a/core/settings/qPrefPrivate.h
+++ b/core/settings/qPrefPrivate.h
@@ -3,7 +3,6 @@
#define QPREFPRIVATE_H
// Header used by all qPref<class> implementations to avoid duplicating code
-
#include <QSettings>
#include <QVariant>
#include <QObject>
@@ -18,17 +17,13 @@ public:
QSettings setting;
+ // Helper functions
+ static void copy_txt(const char **name, const QString& string);
+
private:
qPrefPrivate(QObject *parent = NULL);
};
-//****** Macros to be used in the set functions ******
-#define COPY_TXT(name, string) \
-{ \
- free((void *)prefs.name); \
- prefs.name = copy_qstring(string); \
-}
-
//****** Macros to be used in the disk functions, which are special ******
#define LOADSYNC_BOOL(name, field) \
{ \
@@ -191,7 +186,7 @@ void qPref ## usegroup::set_ ## field (int value) \
void qPref ## usegroup::set_ ## field (const QString& value) \
{ \
if (value != prefs.field) { \
- COPY_TXT(field, value); \
+ qPrefPrivate::instance()->copy_txt(&prefs.field, value); \
disk_ ## field(true); \
emit field ## _changed(value); \
} \