Index: sources/main.h =================================================================== diff -u -r76d4131d70c18cbfaf47c242c17258e80161e8dc -r9ae3b0d6624904693329309aaf8ff02784c17184 --- sources/main.h (.../main.h) (revision 76d4131d70c18cbfaf47c242c17258e80161e8dc) +++ sources/main.h (.../main.h) (revision 9ae3b0d6624904693329309aaf8ff02784c17184) @@ -357,18 +357,32 @@ ADJUST_TRANSMT_PUBLIC_SLOT (vTYPE) \ ADJUST_TRANSMT_SIGNAL (vTYPE) \ //--------------------------------------------------------------------------------// -#define SAFE_CALL( vMETHOD) \ -public Q_SLOTS : void vMETHOD() { \ - static bool init = false; \ - if ( ! init ) { \ - connect(this, SIGNAL(did##vMETHOD()), \ - this, SLOT( on##vMETHOD())); \ - init = true; \ +#define SAFE_CALL( vMETHOD) \ +public Q_SLOTS : void vMETHOD() { \ + static bool init = false; \ + if ( ! init ) { \ + connect(this, SIGNAL( did##vMETHOD()), \ + this, SLOT( on##vMETHOD())); \ + init = true; \ + } \ + emit did##vMETHOD(); \ } \ - emit did##vMETHOD();} \ -Q_SIGNALS : void did##vMETHOD(); \ -private Q_SLOTS : void on##vMETHOD(); +Q_SIGNALS : void did##vMETHOD(); \ +private Q_SLOTS : void on##vMETHOD(); //--------------------------------------------------------------------------------// +#define SAFE_CALL_EX( vMETHOD,vTYPE) \ +public Q_SLOTS : void vMETHOD(vTYPE vData) { \ + static bool init = false; \ + if ( ! init ) { \ + connect(this, SIGNAL( did##vMETHOD(vTYPE)), \ + this, SLOT( on##vMETHOD(vTYPE))); \ + init = true; \ + } \ + emit did##vMETHOD( vData); \ + } \ +Q_SIGNALS : void did##vMETHOD(vTYPE); \ +private Q_SLOTS : void on##vMETHOD(vTYPE); +//--------------------------------------------------------------------------------// #define REGISTER_METATYPE(vTYPE) \ qRegisterMetaType < vTYPE > (#vTYPE); //--------------------------------------------------------------------------------//