diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/common/signalwait.cpp')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/common/signalwait.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/common/signalwait.cpp b/SQLiteStudio3/coreSQLiteStudio/common/signalwait.cpp new file mode 100644 index 0000000..90f9075 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/common/signalwait.cpp @@ -0,0 +1,29 @@ +#include "signalwait.h" +#include <QCoreApplication> +#include <QTime> + +SignalWait::SignalWait(QObject* object, const char* signal) : + QObject() +{ + connect(object, signal, this, SLOT(handleSignal())); +} + +bool SignalWait::wait(int msTimeout) +{ + QTime timer(0, 0, 0, msTimeout); + timer.start(); + while (!called && timer.elapsed() < msTimeout) + qApp->processEvents(QEventLoop::ExcludeUserInputEvents); + + return called; +} + +void SignalWait::reset() +{ + called = false; +} + +void SignalWait::handleSignal() +{ + called = true; +} |
