extend API of TimerFunction class

This commit is contained in:
wmayer
2017-04-01 16:39:44 +02:00
parent c80f6f0941
commit b01a51dbf5
2 changed files with 13 additions and 0 deletions

View File

@@ -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();
}

View File

@@ -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: