/* 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 #include #include #include #include #include #include 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 > 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 > mNoActorR; QMutex mCancelMutex; bool mCanceled; int mStatus; }; #endif // DBANALYZER_H