diff options
author | jan Iversen <jani@apache.org> | 2018-07-18 20:47:59 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-07-25 08:35:04 -0700 |
commit | f1648d297b174024bf772cbd6b482185532e0812 (patch) | |
tree | fd6b7bcc3346cdf0581d8ca91c8529516385517a /core/settings | |
parent | 597aa75348f8282e9a9d6349dd06192740fccd1f (diff) | |
download | subsurface-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.cpp | 10 | ||||
-rw-r--r-- | core/settings/qPrefDisplay.cpp | 2 | ||||
-rw-r--r-- | core/settings/qPrefPrivate.cpp | 7 | ||||
-rw-r--r-- | core/settings/qPrefPrivate.h | 13 |
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); \ } \ |