aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2018-07-27 23:54:15 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2018-07-27 23:54:15 -0400
commit6d3d39356473078c6b47e03b8a7616e4b34de928 (patch)
treefe5be2e6a08e4cfc73207746aba4c9fccfecfa10 /SQLiteStudio3/coreSQLiteStudio/common/lazytrigger.cpp
parentf98e49169a40876bcf1df832de6e908d1b350193 (diff)
parentfeda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (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.cpp37
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();
+}