summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/populateworker.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/populateworker.h')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/populateworker.h41
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