extend API of TimerFunction class
This commit is contained in:
@@ -120,8 +120,10 @@ class TimerFunctionPrivate
|
||||
public:
|
||||
boost::function<void()> timeoutFunc;
|
||||
boost::function<void(QObject*)> timeoutFuncQObject;
|
||||
boost::function<void(QVariant)> timeoutFuncQVariant;
|
||||
bool autoDelete;
|
||||
QPointer<QObject> argQObject;
|
||||
QVariant argQVariant;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -148,6 +150,13 @@ void TimerFunction::setFunction(boost::function<void(QObject*)> func, QObject* a
|
||||
d->argQObject = args;
|
||||
}
|
||||
|
||||
void TimerFunction::setFunction(boost::function<void(QVariant)> func, QVariant args)
|
||||
{
|
||||
Q_D(TimerFunction);
|
||||
d->timeoutFuncQVariant = func;
|
||||
d->argQVariant = args;
|
||||
}
|
||||
|
||||
void TimerFunction::setAutoDelete(bool on)
|
||||
{
|
||||
Q_D(TimerFunction);
|
||||
@@ -161,6 +170,8 @@ void TimerFunction::timeout()
|
||||
d->timeoutFunc();
|
||||
else if (d->timeoutFuncQObject)
|
||||
d->timeoutFuncQObject(d->argQObject);
|
||||
else if (d->timeoutFuncQVariant)
|
||||
d->timeoutFuncQVariant(d->argQVariant);
|
||||
if (d->autoDelete)
|
||||
deleteLater();
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QPointer>
|
||||
#include <QVariant>
|
||||
#include <boost/function.hpp>
|
||||
|
||||
class QAction;
|
||||
@@ -100,6 +101,7 @@ public:
|
||||
|
||||
void setFunction(boost::function<void()> func);
|
||||
void setFunction(boost::function<void(QObject*)> func, QObject* args);
|
||||
void setFunction(boost::function<void(QVariant)> func, QVariant args);
|
||||
void setAutoDelete(bool);
|
||||
|
||||
private Q_SLOTS:
|
||||
|
||||
Reference in New Issue
Block a user