Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. //-----In Config.h---------------
  2. #define DECLARE_GETTER_SETTER_SIGNAL(LOWER_CASE_NAME, UPPER_CASE_NAME, TYPE) \
  3. TYPE LOWER_CASE_NAME () const; \
  4. void set##UPPER_CASE_NAME (TYPE);\
  5. Q_SIGNAL void LOWER_CASE_NAME##Changed(TYPE);
  6.  
  7. //-----In Config.cpp--------------
  8. #define DEFINE_GETTER_AND_SETTER(LOWER_CASE_NAME, UPPER_CASE_NAME, KEY, TYPE, DEFAULT_VALUE, GROUP) \
  9. TYPE Config::LOWER_CASE_NAME () const\
  10. { \
  11. return loadProperty<TYPE>(KEY, DEFAULT_VALUE, GROUP); \
  12. }\
  13. void Config::set##UPPER_CASE_NAME (TYPE value) \
  14. { \
  15. static QMutex mutex; \
  16. QMutexLocker locker(&mutex); \
  17. bool changed = (LOWER_CASE_NAME() != value); \
  18. if (changed) \
  19. { \
  20. saveProperty<TYPE>(#KEY, value, GROUP); \
  21. emit LOWER_CASE_NAME##Changed(value); \
  22. } \
  23. }
  24.  
  25. #define DEFINE_ENUM_GETTER_AND_SETTER(LOWER_CASE_NAME, UPPER_CASE_NAME, KEY, TYPE, DEFAULT_VALUE, GROUP) \
  26. TYPE Config::LOWER_CASE_NAME () const\
  27. { \
  28. return static_cast<TYPE>(loadProperty<int>(KEY, static_cast<int>(DEFAULT_VALUE), GROUP)); \
  29. }\
  30. void Config::set##UPPER_CASE_NAME (TYPE value) \
  31. { \
  32. static QMutex mutex; \
  33. QMutexLocker locker(&mutex); \
  34. bool changed = (LOWER_CASE_NAME() != value); \
  35. if (changed) \
  36. { \
  37. saveProperty<int>(#KEY, static_cast<int>(value), GROUP); \
  38. emit LOWER_CASE_NAME##Changed(value); \
  39. } \
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement