diff options
| author | 2018-07-27 23:54:15 -0400 | |
|---|---|---|
| committer | 2018-07-27 23:54:15 -0400 | |
| commit | 6d3d39356473078c6b47e03b8a7616e4b34de928 (patch) | |
| tree | fe5be2e6a08e4cfc73207746aba4c9fccfecfa10 /SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp | |
| parent | f98e49169a40876bcf1df832de6e908d1b350193 (diff) | |
| parent | feda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (diff) | |
Update upstream source from tag 'upstream/3.2.1+dfsg1'
Update to upstream version '3.2.1+dfsg1'
with Debian dir 5ea0333565de4dc898c062cc0ff4ba1153e2c1e4
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp b/SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp new file mode 100644 index 0000000..2c39f34 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp @@ -0,0 +1,37 @@ +#include "lazytrigger.h" +#include <QTimer> + +LazyTrigger::LazyTrigger(int delay, QObject* parent, const char* slot) : + QObject(parent) +{ + timer = new QTimer(this); + timer->setSingleShot(true); + timer->setInterval(delay); + connect(timer, &QTimer::timeout, this, &LazyTrigger::triggered); + if (slot) + connect(timer, SIGNAL(timeout()), parent, slot); +} + +LazyTrigger::LazyTrigger(int delay, LazyTrigger::Condition condition, QObject* parent, const char* slot) : + LazyTrigger(delay, parent, slot) +{ + this->condition = condition; +} + +void LazyTrigger::setDelay(int delay) +{ + timer->setInterval(delay); +} + +void LazyTrigger::schedule() +{ + timer->stop(); + + if (!condition || condition()) + timer->start(); +} + +void LazyTrigger::cancel() +{ + timer->stop(); +} |
