|
@@ -21,6 +21,7 @@
|
|
|
// Qt includes
|
|
|
#include <QCoreApplication>
|
|
|
#include <QTimer>
|
|
|
+#include <QVariant>
|
|
|
|
|
|
// CTK includes
|
|
|
#include "ctkCallback.h"
|
|
@@ -32,15 +33,25 @@
|
|
|
namespace
|
|
|
{
|
|
|
bool Done1;
|
|
|
-void doSomething1()
|
|
|
+ctkCallback * Callback1;
|
|
|
+void doSomething1(void* data)
|
|
|
{
|
|
|
- Done1 = true;
|
|
|
+ Done1 = (Callback1 == data);
|
|
|
}
|
|
|
|
|
|
bool Done2;
|
|
|
-void doSomething2()
|
|
|
+ctkCallback * Callback2;
|
|
|
+void doSomething2(void* data)
|
|
|
{
|
|
|
- Done2 = true;
|
|
|
+ ctkCallback * callback = reinterpret_cast<ctkCallback*>(data);
|
|
|
+ Done2 = (Callback2 == data && callback->property("foo").toInt() == 7);
|
|
|
+}
|
|
|
+
|
|
|
+bool Done3;
|
|
|
+void* CallbackData3;
|
|
|
+void doSomething3(void* data)
|
|
|
+{
|
|
|
+ Done3 = (CallbackData3 == data);
|
|
|
}
|
|
|
|
|
|
} // end of anomymous namespace
|
|
@@ -53,8 +64,20 @@ int ctkCallbackTest1(int argc, char * argv [] )
|
|
|
|
|
|
Done1 = false;
|
|
|
Done2 = false;
|
|
|
+ Done3 = false;
|
|
|
|
|
|
+ //-----------------------------------------------------------------------------
|
|
|
+ ctkCallback callback;
|
|
|
+ if (callback.callbackData() != &callback)
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Problem vith ctkCallback constructor" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+ QTimer::singleShot(0, &callback, SLOT(invoke()));
|
|
|
+
|
|
|
+ //-----------------------------------------------------------------------------
|
|
|
ctkCallback callback1;
|
|
|
+ Callback1 = &callback1;
|
|
|
if (callback1.callback() != 0)
|
|
|
{
|
|
|
std::cerr << "Line " << __LINE__ << " - Problem vith ctkCallback constructor"
|
|
@@ -71,19 +94,26 @@ int ctkCallbackTest1(int argc, char * argv [] )
|
|
|
|
|
|
QTimer::singleShot(0, &callback1, SLOT(invoke()));
|
|
|
|
|
|
+ //-----------------------------------------------------------------------------
|
|
|
ctkCallback callback2(doSomething2);
|
|
|
+ callback2.setProperty("foo", QVariant(7));
|
|
|
+ Callback2 = &callback2;
|
|
|
if (callback2.callback() != doSomething2)
|
|
|
{
|
|
|
std::cerr << "Line " << __LINE__ << " - Problem vith ctkCallback constructor" << std::endl;
|
|
|
return EXIT_FAILURE;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
QTimer::singleShot(0, &callback2, SLOT(invoke()));
|
|
|
+
|
|
|
+ //-----------------------------------------------------------------------------
|
|
|
+ QObject dummyData;
|
|
|
+ CallbackData3 = &dummyData;
|
|
|
+ ctkCallback callback3(doSomething3);
|
|
|
+ callback3.setCallbackData(&dummyData);
|
|
|
+ QTimer::singleShot(0, &callback3, SLOT(invoke()));
|
|
|
|
|
|
- ctkCallback callback3;
|
|
|
|
|
|
- QTimer::singleShot(0, &callback3, SLOT(invoke()));
|
|
|
-
|
|
|
QTimer::singleShot(0, &app, SLOT(quit()));
|
|
|
|
|
|
int status = app.exec();
|
|
@@ -97,11 +127,17 @@ int ctkCallbackTest1(int argc, char * argv [] )
|
|
|
std::cerr << "Line " << __LINE__ << " - Probem with ctkCallback" << std::endl;
|
|
|
return EXIT_FAILURE;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (!Done2)
|
|
|
{
|
|
|
std::cerr << "Line " << __LINE__ << " - Probem with ctkCallback::setCallback" << std::endl;
|
|
|
return EXIT_FAILURE;
|
|
|
}
|
|
|
+
|
|
|
+ if (!Done3)
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Probem with ctkCallback::setCallback" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
return EXIT_SUCCESS;
|
|
|
}
|