diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/populateworker.h')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/populateworker.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/populateworker.h b/SQLiteStudio3/coreSQLiteStudio/populateworker.h new file mode 100644 index 0000000..f0a39f8 --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/populateworker.h @@ -0,0 +1,41 @@ +#ifndef POPULATEWORKER_H +#define POPULATEWORKER_H + +#include <QMutex> +#include <QObject> +#include <QRunnable> +#include <QStringList> + +class Db; +class PopulateEngine; + +class PopulateWorker : public QObject, public QRunnable +{ + Q_OBJECT + public: + explicit PopulateWorker(Db* db, const QString& table, const QStringList& columns, const QList<PopulateEngine*>& engines, qint64 rows, QObject *parent = 0); + ~PopulateWorker(); + + void run(); + + private: + bool isInterrupted(); + bool beforePopulating(); + void afterPopulating(); + + Db* db = nullptr; + QString table; + QStringList columns; + QList<PopulateEngine*> engines; + qint64 rows; + bool interrupted = false; + QMutex interruptMutex; + + public slots: + void interrupt(); + + signals: + void finished(bool result); +}; + +#endif // POPULATEWORKER_H |
