Index: sources/main.h =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r7a1509a80fed2dd51aa28b460acbf0227d0c96d7 --- sources/main.h (.../main.h) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ sources/main.h (.../main.h) (revision 7a1509a80fed2dd51aa28b460acbf0227d0c96d7) @@ -75,7 +75,8 @@ */\ void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ static bool init = false; \ - if ( !init || _##vVARIABLE != v##vVARIABLE ) { \ + _##vVARIABLE##Changed = _##vVARIABLE != v##vVARIABLE; \ + if ( !init || _##vVARIABLE##Changed ) { \ DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ init = true; \ _##vVARIABLE = v##vVARIABLE; \ @@ -94,6 +95,7 @@ */\ void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ + _##vVARIABLE##Changed = true; \ _##vVARIABLE = v##vVARIABLE; \ emit vVARIABLE##Triggered( _##vVARIABLE ); \ } @@ -108,13 +110,13 @@ \param new value */\ void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ - if ( _##vVARIABLE != v##vVARIABLE ) { \ + _##vVARIABLE##Changed = _##vVARIABLE != v##vVARIABLE; \ + if ( _##vVARIABLE##Changed ) { \ DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ _##vVARIABLE = v##vVARIABLE; \ emit vVARIABLE##Entered( _##vVARIABLE ); \ } \ } - //--------------------------------------------------------------------------------// #define PROPERTY_BASE(vTYPE , vVARIABLE , vDEFVALUE, vSIGNAL) \ /*! \brief Qt Property declaration @@ -134,7 +136,8 @@ */\ void vVARIABLE##vSIGNAL( const vTYPE & v##vVARIABLE ); \ private: \ - vTYPE _##vVARIABLE = vDEFVALUE; \ + vTYPE _##vVARIABLE = vDEFVALUE; \ + bool _##vVARIABLE##Changed = false; \ protected: \ /*! \brief Property getter \details The property getter which reads the private variable @@ -145,17 +148,14 @@ } //--------------------------------------------------------------------------------// #define PROPERTY( vTYPE , vVARIABLE , vDEFVALUE ) \ - \ PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Changed ) \ PROPERTY_SLOT( vTYPE , vVARIABLE) //--------------------------------------------------------------------------------// #define TRIGGER( vTYPE , vVARIABLE , vDEFVALUE ) \ - \ PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Triggered) \ TRIGGER_SLOT ( vTYPE , vVARIABLE) //--------------------------------------------------------------------------------// #define STATE( vTYPE , vVARIABLE , vDEFVALUE ) \ - \ PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Entered ) \ STATE_SLOT ( vTYPE , vVARIABLE) //--------------------------------------------------------------------------------//