mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core: qPref private add macros to replace disk* functions
Use a private QSettings variable, instead of declaring it each time Add macros to handle full disk* functions Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
parent
e5dace2233
commit
ce358fdb68
1 changed files with 69 additions and 37 deletions
|
@ -4,69 +4,101 @@
|
||||||
|
|
||||||
// Header used by all qPref<class> implementations to avoid duplicating code
|
// Header used by all qPref<class> implementations to avoid duplicating code
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
#include <QObject>
|
||||||
#include "core/qthelper.h"
|
#include "core/qthelper.h"
|
||||||
|
|
||||||
|
//****** Macros to be used in the set functions ******
|
||||||
#define COPY_TXT(name, string) \
|
#define COPY_TXT(name, string) \
|
||||||
{ \
|
{ \
|
||||||
free((void *)prefs.name); \
|
free((void *)prefs.name); \
|
||||||
prefs.name = copy_qstring(string); \
|
prefs.name = copy_qstring(string); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LOADSYNC_INT(name, field) \
|
//****** Macros to be used in the disk functions, which are special ******
|
||||||
{ \
|
|
||||||
QSettings s; \
|
|
||||||
if (doSync) \
|
|
||||||
s.setValue(group + name, prefs.field); \
|
|
||||||
else \
|
|
||||||
prefs.field = s.value(group + name, default_prefs.field).toInt(); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LOADSYNC_INT_DEF(name, field, defval) \
|
|
||||||
{ \
|
|
||||||
QSettings s; \
|
|
||||||
if (doSync) \
|
|
||||||
s.setValue(group + name, prefs.field); \
|
|
||||||
else \
|
|
||||||
prefs.field = s.value(group + name, defval).toInt(); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LOADSYNC_ENUM(name, type, field) \
|
|
||||||
{ \
|
|
||||||
QSettings s; \
|
|
||||||
if (doSync) \
|
|
||||||
s.setValue(group + name, prefs.field); \
|
|
||||||
else \
|
|
||||||
prefs.field = (enum type)s.value(group + name, default_prefs.field).toInt(); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LOADSYNC_BOOL(name, field) \
|
#define LOADSYNC_BOOL(name, field) \
|
||||||
{ \
|
{ \
|
||||||
QSettings s; \
|
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
s.setValue(group + name, prefs.field); \
|
setting.setValue(group + name, prefs.field); \
|
||||||
else \
|
else \
|
||||||
prefs.field = s.value(group + name, default_prefs.field).toBool(); \
|
prefs.field = setting.value(group + name, default_prefs.field).toBool(); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LOADSYNC_DOUBLE(name, field) \
|
#define LOADSYNC_DOUBLE(name, field) \
|
||||||
{ \
|
{ \
|
||||||
QSettings s; \
|
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
s.setValue(group + name, prefs.field); \
|
setting.setValue(group + name, prefs.field); \
|
||||||
else \
|
else \
|
||||||
prefs.field = s.value(group + name, default_prefs.field).toDouble(); \
|
prefs.field = setting.value(group + name, default_prefs.field).toDouble(); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LOADSYNC_ENUM(name, type, field) \
|
||||||
|
{ \
|
||||||
|
if (doSync) \
|
||||||
|
setting.setValue(group + name, prefs.field); \
|
||||||
|
else \
|
||||||
|
prefs.field = (enum type)setting.value(group + name, default_prefs.field).toInt(); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LOADSYNC_INT(name, field) \
|
||||||
|
{ \
|
||||||
|
if (doSync) \
|
||||||
|
setting.setValue(group + name, prefs.field); \
|
||||||
|
else \
|
||||||
|
prefs.field = setting.value(group + name, default_prefs.field).toInt(); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LOADSYNC_INT_DEF(name, field, defval) \
|
||||||
|
{ \
|
||||||
|
if (doSync) \
|
||||||
|
setting.setValue(group + name, prefs.field); \
|
||||||
|
else \
|
||||||
|
prefs.field = setting.value(group + name, defval).toInt(); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LOADSYNC_TXT(name, field) \
|
#define LOADSYNC_TXT(name, field) \
|
||||||
{ \
|
{ \
|
||||||
QSettings s; \
|
|
||||||
if (doSync) \
|
if (doSync) \
|
||||||
s.setValue(group + name, prefs.field); \
|
setting.setValue(group + name, prefs.field); \
|
||||||
else \
|
else \
|
||||||
prefs.field = copy_qstring(s.value(group + name, default_prefs.field).toString()); \
|
prefs.field = copy_qstring(setting.value(group + name, default_prefs.field).toString()); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//******* Macros to generate disk function
|
||||||
|
#define DISK_LOADSYNC_BOOL(class, name, field) \
|
||||||
|
void qPref ## class::disk_ ## field(bool doSync) \
|
||||||
|
{ \
|
||||||
|
LOADSYNC_BOOL(name, field); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DISK_LOADSYNC_DOUBLE(class, name, field) \
|
||||||
|
void qPref ## class::disk_ ## field(bool doSync) \
|
||||||
|
{ \
|
||||||
|
LOADSYNC_DOUBLE(name, field); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DISK_LOADSYNC_ENUM(class, name, type, field) \
|
||||||
|
void qPref ## class::disk_ ## field(bool doSync) \
|
||||||
|
{ \
|
||||||
|
LOADSYNC_ENUM(name, type, field); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DISK_LOADSYNC_INT(class, name, field) \
|
||||||
|
void qPref ## class::disk_ ## field(bool doSync) \
|
||||||
|
{ \
|
||||||
|
LOADSYNC_DOUBLE(name, field); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DISK_LOADSYNC_INT_DEF(class, name, field, defval) \
|
||||||
|
void qPref ## class::disk_ ## field(bool doSync) \
|
||||||
|
{ \
|
||||||
|
LOADSYNC_INT_DEF(name, field, defval); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DISK_LOADSYNC_TXT(class, name, field) \
|
||||||
|
void qPref ## class::disk_ ## field(bool doSync) \
|
||||||
|
{ \
|
||||||
|
LOADSYNC_TXT(name, field); \
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue