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
|
||||
|
||||
#include <QObject>
|
||||
#include <QSettings>
|
||||
#include <QVariant>
|
||||
#include <QObject>
|
||||
#include "core/qthelper.h"
|
||||
|
||||
//****** Macros to be used in the set functions ******
|
||||
#define COPY_TXT(name, string) \
|
||||
{ \
|
||||
free((void *)prefs.name); \
|
||||
prefs.name = copy_qstring(string); \
|
||||
}
|
||||
|
||||
#define LOADSYNC_INT(name, field) \
|
||||
{ \
|
||||
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(); \
|
||||
}
|
||||
|
||||
//****** Macros to be used in the disk functions, which are special ******
|
||||
#define LOADSYNC_BOOL(name, field) \
|
||||
{ \
|
||||
QSettings s; \
|
||||
if (doSync) \
|
||||
s.setValue(group + name, prefs.field); \
|
||||
setting.setValue(group + name, prefs.field); \
|
||||
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) \
|
||||
{ \
|
||||
QSettings s; \
|
||||
if (doSync) \
|
||||
s.setValue(group + name, prefs.field); \
|
||||
setting.setValue(group + name, prefs.field); \
|
||||
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) \
|
||||
{ \
|
||||
QSettings s; \
|
||||
if (doSync) \
|
||||
s.setValue(group + name, prefs.field); \
|
||||
setting.setValue(group + name, prefs.field); \
|
||||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue