summaryrefslogtreecommitdiffstats
path: root/dbanalyzer.h
diff options
context:
space:
mode:
Diffstat (limited to 'dbanalyzer.h')
-rw-r--r--dbanalyzer.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/dbanalyzer.h b/dbanalyzer.h
new file mode 100644
index 0000000..2005c85
--- /dev/null
+++ b/dbanalyzer.h
@@ -0,0 +1,78 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version
+ 2 of the License, or (at your option) any later version.
+*/
+
+#ifndef DBANALYZER_H
+#define DBANALYZER_H
+
+#include <QThread>
+#include <QVariant>
+#include <QList>
+#include <QDialog>
+#include <QSqlDatabase>
+#include <QMutex>
+#include <QModelIndex>
+
+class QSqlQuery;
+class QTabWidget;
+class QTreeView;
+class QPushButton;
+class SmTreeModel;
+class DbAnalyzer;
+
+class DbAnalyzerDialog : public QDialog {
+ Q_OBJECT
+ public:
+ explicit DbAnalyzerDialog(QWidget *parent = 0, Qt::WindowFlags f = 0);
+
+ signals:
+ void partClicked(int seriesPartId, int seriesId);
+
+ private slots:
+ void cancelAnalyzer();
+ void analyzerStarted();
+ void analyzerFinished();
+ void noActorsDoubleClicked(const QModelIndex &);
+
+ private:
+ void populateNoActors();
+ QTabWidget *mTab;
+ QTreeView *mNoActorsV;
+ SmTreeModel *mNoActorsM;
+ QPushButton *mClose;
+ QPushButton *mCancel;
+ DbAnalyzer *mAnalyzer;
+};
+
+class DbAnalyzer : public QThread {
+ Q_OBJECT
+ public:
+ enum Status { Ok, Fail };
+ explicit DbAnalyzer(QObject *parent = 0);
+ ~DbAnalyzer();
+ int status() { return mStatus; }
+ const QList<QList<QVariant> > noActors() { return mNoActorR; }
+
+ public slots:
+ void setCancel(bool canceled);
+
+ signals:
+ void message(const QString &);
+
+ protected:
+ void run();
+
+ private:
+ void noActorsCheck();
+ QSqlDatabase mDb;
+ QSqlQuery *mNoActorQuery;
+ QList<QList<QVariant> > mNoActorR;
+ QMutex mCancelMutex;
+ bool mCanceled;
+ int mStatus;
+};
+
+#endif // DBANALYZER_H