Index: sources/main.h =================================================================== diff -u -r14c541d2b780b0a244bc84860aa565cf8dd7fe4b -rc0c63c4b149dafea2b02e4cd31f223e392ff7818 --- sources/main.h (.../main.h) (revision 14c541d2b780b0a244bc84860aa565cf8dd7fe4b) +++ sources/main.h (.../main.h) (revision c0c63c4b149dafea2b02e4cd31f223e392ff7818) @@ -64,7 +64,7 @@ the notify signal (...Changed) passes the new value as its parameter. \n \param new value */\ - void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ static bool init = false; \ if ( !init || _##vVARIABLE != v##vVARIABLE ) { \ DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ @@ -89,6 +89,24 @@ emit vVARIABLE##Triggered( _##vVARIABLE ); \ } //--------------------------------------------------------------------------------// +#define STATE_SLOT( vTYPE , vVARIABLE ) \ + protected : \ + /*! \brief Property setter + \details The property setter which update the private variable \n + - if only the value has been changed \n + emits the Property notify (...Entered) signal on update. \n + the notify signal (...Entered) passes the new value as its parameter. \n + \param new value + */\ + void vVARIABLE ( const vTYPE & v##vVARIABLE ) { \ + if ( _##vVARIABLE != v##vVARIABLE ) { \ + DEBUG_PROPERTY_CHANGED(vVARIABLE, v) \ + _##vVARIABLE = v##vVARIABLE; \ + emit vVARIABLE##Entered( _##vVARIABLE ); \ + } \ + } + +//--------------------------------------------------------------------------------// #define PROPERTY_BASE(vTYPE , vVARIABLE , vDEFVALUE, vSIGNAL) \ /*! \brief Qt Property declaration \details The Qt Property definition by Q_PROPERTY documentation. @@ -125,8 +143,13 @@ #define TRIGGER( vTYPE , vVARIABLE , vDEFVALUE ) \ \ PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Triggered) \ - TRIGGER_SLOT( vTYPE , vVARIABLE) + TRIGGER_SLOT ( vTYPE , vVARIABLE) //--------------------------------------------------------------------------------// +#define STATE( vTYPE , vVARIABLE , vDEFVALUE ) \ + \ + PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Entered ) \ + STATE_SLOT ( vTYPE , vVARIABLE) +//--------------------------------------------------------------------------------// #define CONSTANT( vTYPE , vVARIABLE , vDEFVALUE ) \ /*! \brief Qt Constant Property declaration \details The Qt Property definition by Q_PROPERTY documentation.