Index: sources/main.h =================================================================== diff -u -rd2035a8728794afeefaa244bf8d1597926d945f5 -rd1907168ef46faa6de1ada400cad789f8379041f --- sources/main.h (.../main.h) (revision d2035a8728794afeefaa244bf8d1597926d945f5) +++ sources/main.h (.../main.h) (revision d1907168ef46faa6de1ada400cad789f8379041f) @@ -48,14 +48,14 @@ extern bool gDisableTimeout; //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// -#define DEBUG_PROPERTY_CHANGED(vVARIABLE) //qDebug() << "#" << #vVARIABLE << v##vVARIABLE; +#define DEBUG_PROPERTY_CHANGED(vVARIABLE, PREFIX) // qDebug() << "#" << #vVARIABLE << PREFIX##vVARIABLE; //--------------------------------------------------------------------------------// #define PROPERTY_SLOT( vTYPE , vVARIABLE ) \ protected : \ void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ static bool init = false; \ if ( !init || _##vVARIABLE != v##vVARIABLE ) { \ - DEBUG_PROPERTY_CHANGED(vVARIABLE) \ + DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ init = true; \ _##vVARIABLE = v##vVARIABLE; \ emit vVARIABLE##Changed( _##vVARIABLE ); \ @@ -65,7 +65,7 @@ #define TRIGGER_SLOT( vTYPE , vVARIABLE ) \ protected: \ void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ - DEBUG_PROPERTY_CHANGED(vVARIABLE) \ + DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ _##vVARIABLE = v##vVARIABLE; \ emit vVARIABLE##Triggered( _##vVARIABLE ); \ } @@ -167,4 +167,36 @@ //--------------------------------------------------------------------------------// #define REGISTER_TYPE(vTYPE) \ qmlRegisterType < vTYPE > (#vTYPE, 0, 1, #vTYPE); +#define GET_VARIABLE_NAME(VARIABLE) (#VARIABLE) +#define TREATMENT_PARAMETER(TYPE, NAME, DEFVALUE) \ +private: \ + TYPE _##NAME = DEFVALUE; \ + bool is##NAME##Set = false; \ +protected: \ + Q_PROPERTY(TYPE NAME \ + READ get_##NAME \ + WRITE set_##NAME \ + NOTIFY NAME##Changed) \ + void set_##NAME(const TYPE &p##NAME) { \ + static bool init = false; \ + if ( !init || _##NAME != p##NAME ) { \ + init = true; \ + _##NAME = p##NAME; \ + DEBUG_PROPERTY_CHANGED(NAME, _) \ + is##NAME##Set = true; \ + emit NAME##Changed(_##NAME); \ + onUserModifiedParameters(); \ + } \ + } \ + TYPE get_##NAME() const { \ + return _##NAME; \ + } \ + void reset_##NAME() { \ + _##NAME = DEFVALUE; \ + is##NAME##Set = false; \ + emit NAME##Changed(_##NAME); \ + } \ +Q_SIGNALS: \ + void NAME##Changed(const TYPE &p##NAME); \ + void NAME##_ValidationFailed(const QString &reason);