Index: sources/main.h =================================================================== diff -u -r981e534e5b3174aab7ec47de3b1ead1511dbb6ef -re8df7fe7fe6274c416f176369250b9581e07d2a5 --- sources/main.h (.../main.h) (revision 981e534e5b3174aab7ec47de3b1ead1511dbb6ef) +++ sources/main.h (.../main.h) (revision e8df7fe7fe6274c416f176369250b9581e07d2a5) @@ -111,8 +111,14 @@ #define SKIPPER_RST \ skipperCounter = 0 //--------------------------------------------------------------------------------// +#define DEBUG_PROPERTY_CHANGED(vVARIABLE, PREFIX) // qDebug() << "#" << #vVARIABLE << PREFIX##vVARIABLE; //--------------------------------------------------------------------------------// -#define DEBUG_PROPERTY_CHANGED(vVARIABLE, PREFIX) // qDebug() << "#" << #vVARIABLE << PREFIX##vVARIABLE; +#define FROMVARIANT(vVARIABLE, vGROUP, vKEY, vCONVERSION) \ +{ \ + bool ok = false; \ + vVARIABLE( _Settings.value(mCategory, vGROUP, vKEY).to##vCONVERSION(&ok) ); \ + if ( !ok ) LOG_DEBUG("incorrect configuration value for " #vVARIABLE); \ +} //--------------------------------------------------------------------------------// #define PROPERTY_SLOT( vTYPE , vVARIABLE ) \ protected : \ @@ -273,25 +279,35 @@ //--------------------------------------------------------------------------------// #define READONLY( vTYPE , vVARIABLE , vDEFVALUE ) \ READONLY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Changed ) \ - PROPERTY_SLOT( vTYPE , vVARIABLE) + PROPERTY_SLOT( vTYPE , vVARIABLE ) //--------------------------------------------------------------------------------// #define PROPERTY( vTYPE , vVARIABLE , vDEFVALUE ) \ PROPERTY_BASE( vTYPE , vVARIABLE , vDEFVALUE , Changed ) \ - PROPERTY_SLOT( vTYPE , vVARIABLE) + PROPERTY_SLOT( vTYPE , vVARIABLE ) //--------------------------------------------------------------------------------// #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) + STATE_SLOT ( vTYPE , vVARIABLE ) //--------------------------------------------------------------------------------// - -#define IDBASED( vTYPE , vVARIABLE , vDEFAULT , vLIST , vID ) \ - IDBASED_BASE ( vTYPE , vVARIABLE , vDEFAULT , vLIST , vID ) \ - PROPERTY_SLOT( vTYPE , vVARIABLE ) +#define IDBASED( vTYPE , vVARIABLE , vDEFVALUE , vLIST , vID ) \ + IDBASED_BASE ( vTYPE , vVARIABLE , vDEFVALUE , vLIST , vID ) \ + PROPERTY_SLOT( vTYPE , vVARIABLE ) //--------------------------------------------------------------------------------// +#define VALUESET( vTYPE , vVARIABLE , vDEFVALUE ) \ + PROPERTY( vTYPE , vVARIABLE , vDEFVALUE ) \ + PROPERTY( bool , vVARIABLE##Set , false ) +//--------------------------------------------------------------------------------// +#define RANGESET( vTYPE , vVARIABLE , vDEFVALUE ) \ + READONLY( vTYPE , vVARIABLE##Min , vDEFVALUE ) \ + READONLY( vTYPE , vVARIABLE##Max , vDEFVALUE ) \ + READONLY( vTYPE , vVARIABLE##Res , vDEFVALUE ) \ + READONLY( vTYPE , vVARIABLE##Def , vDEFVALUE ) \ + READONLY( vTYPE , vVARIABLE##Gap , vDEFVALUE ) +//--------------------------------------------------------------------------------// #define CONSTANT( vTYPE , vVARIABLE , vDEFVALUE ) \ /*! \brief Qt Constant Property declaration \details The Qt Property definition by Q_PROPERTY documentation. @@ -526,62 +542,4 @@ //--------------------------------------------------------------------------------// #define REGISTER_TYPE(vTYPE) \ qmlRegisterType < vTYPE > (#vTYPE, 0, 1, #vTYPE); -#define GET_VARIABLE_NAME(VARIABLE) (#VARIABLE) -#define DEBUG_TREATMENT_PARAMETER(NAME, VARIABLE) // qDebug() << NAME << VARIABLE; -#define TREATMENT_PARAMETER(TYPE, NAME, DEFVALUE, MIN, MAX, RES) \ -private: \ - TYPE _##NAME = DEFVALUE; \ - TYPE _##NAME##Min = MIN; \ - TYPE _##NAME##Max = MAX; \ - TYPE _##NAME##Res = RES; \ - bool is##NAME##Set = false; \ -protected: \ - Q_PROPERTY(TYPE NAME \ - READ NAME \ - WRITE NAME \ - NOTIFY NAME##Changed) \ - Q_PROPERTY(TYPE NAME##Min \ - READ NAME##Min \ - WRITE NAME##Min \ - NOTIFY NAME##MinChanged) \ - Q_PROPERTY(TYPE NAME##Max \ - READ NAME##Max \ - WRITE NAME##Max \ - NOTIFY NAME##MaxChanged) \ - Q_PROPERTY(TYPE NAME##Res \ - READ NAME##Res \ - WRITE NAME##Res \ - NOTIFY NAME##ResChanged) \ - void NAME(const TYPE &v##NAME) { \ - if ( !is##NAME##Set || _##NAME != v##NAME ) { \ - _##NAME = v##NAME; \ - is##NAME##Set = true; \ - emit NAME##Changed(_##NAME); \ - doUserModifiedParameters(); \ - } \ - DEBUG_TREATMENT_PARAMETER(#NAME, _##NAME) \ - } \ - TYPE NAME##Min() const { return _##NAME##Min; } \ - void NAME##Min(const TYPE &v##NAME##Min) \ - { _##NAME##Min = v##NAME##Min; emit NAME##MinChanged(_##NAME##Min);} \ - TYPE NAME##Max() const { return _##NAME##Max; } \ - void NAME##Max(const TYPE &v##NAME##Max) \ - { _##NAME##Max = v##NAME##Max; emit NAME##MaxChanged(_##NAME##Max);} \ - TYPE NAME##Res() const { return _##NAME##Res; } \ - void NAME##Res(const TYPE &v##NAME##Res) \ - { _##NAME##Res = v##NAME##Res; emit NAME##ResChanged(_##NAME##Res);} \ - TYPE NAME() const { \ - return _##NAME; \ - } \ - void reset_##NAME() { \ - _##NAME = DEFVALUE; \ - is##NAME##Set = false; \ - emit NAME##Changed(_##NAME); \ - } \ -Q_SIGNALS: \ - void NAME##Changed(const TYPE &v##NAME); \ - void NAME##MinChanged(const TYPE &v##NAME); \ - void NAME##MaxChanged(const TYPE &v##NAME); \ - void NAME##ResChanged(const TYPE &v##NAME); \ - void NAME##_ValidationFailed(const QString &reason); - +//--------------------------------------------------------------------------------//