 |
Albert
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
6#define EXPAND_STRINGIZE(s) STRINGIZE(s)
36#define ALBERT_PROPERTY_BASE(type, name, defaultValue, settings) \
37 public: static type name##_default(){ return defaultValue; }; \
38 protected: void store_##name() { settings()->setValue(EXPAND_STRINGIZE(name), name()); } \
39 protected: void restore_##name(const auto &s = nullptr) { \
41 set_##name##_(s->value(EXPAND_STRINGIZE(name), name##_default()).template value<type>()); \
43 set_##name##_(settings()->value(EXPAND_STRINGIZE(name), name##_default()).template value<type>()); \
45 signals: Q_SIGNAL void name##_changed(type); \
46 Q_PROPERTY(type name READ name WRITE set_##name RESET reset_##name NOTIFY name##_changed USER true) \
47 public: void set_##name(type val) { \
48 if (val != name()){ set_##name##_(val); \
50 emit name##_changed(val); } } \
51 public: void reset_##name() { \
52 set_##name(name##_default()); \
53 settings()->remove(EXPAND_STRINGIZE(name)); \
62#define ALBERT_PLUGIN_PROPERTY_BASE(type, name, defaultValue) \
63 ALBERT_PROPERTY_BASE(type, name, defaultValue, PluginInstance::settings)
85#define ALBERT_PROPERTY_GETSET(type, name, defaultValue, settings) \
86 ALBERT_PROPERTY_BASE(type, name, defaultValue, settings) \
87 public: type name() const; \
88 private: void set_##name##_(type);
96#define ALBERT_PLUGIN_PROPERTY_GETSET(type, name, defaultValue) \
97 ALBERT_PROPERTY_GETSET(type, name, defaultValue, PluginInstance::settings)
115#define ALBERT_PROPERTY_MEMBER(type, name, member, defaultValue, settings) \
116 ALBERT_PROPERTY_BASE(type, name, defaultValue, settings) \
117 public: type name() const { return member; } \
118 private: void set_##name##_(type val) { member=val; }
125#define ALBERT_PLUGIN_PROPERTY_MEMBER(type, name, member, defaultValue) \
126 ALBERT_PROPERTY_MEMBER(type, name, member, defaultValue, PluginInstance::settings)
142#define ALBERT_PROPERTY(type, name, defaultValue, settings) \
143 ALBERT_PROPERTY_MEMBER(type, name, name##_, defaultValue, settings) \
144 protected: type name##_{name##_default()};
151#define ALBERT_PLUGIN_PROPERTY(type, name, defaultValue) \
152 ALBERT_PROPERTY(type, name, defaultValue, PluginInstance::settings)