1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#ifndef LAZYTRIGGER_H
#define LAZYTRIGGER_H
#include "coreSQLiteStudio_global.h"
#include <QObject>
#include <functional>
class QTimer;
class API_EXPORT LazyTrigger : public QObject
{
Q_OBJECT
public:
typedef std::function<bool()> Condition;
LazyTrigger(int delay, QObject* parent = nullptr, const char* slot = nullptr);
LazyTrigger(int delay, Condition condition, QObject* parent = nullptr, const char* slot = nullptr);
void setDelay(int delay);
private:
QTimer* timer = nullptr;
Condition condition = nullptr;
public slots:
void schedule();
void cancel();
signals:
void triggered();
};
#endif // LAZYTRIGGER_H
|