diff options
Diffstat (limited to 'dbanalyzer.h')
-rw-r--r-- | dbanalyzer.h | 135 |
1 files changed, 47 insertions, 88 deletions
diff --git a/dbanalyzer.h b/dbanalyzer.h index cc88bbc..9fc2ef2 100644 --- a/dbanalyzer.h +++ b/dbanalyzer.h @@ -8,116 +8,75 @@ #ifndef DBANALYZER_H #define DBANALYZER_H -#include <QThread> -#include <QtWidgets/QDialog> +#include <QDialog> #include <QSqlDatabase> -#include <QMutex> #include <QModelIndex> -class QTabWidget; class SmTreeView; -class SmTreeModel; -class DbAnalyzer; class QLabel; class QStackedLayout; -class DbAnalyzerDialog : public QDialog { +class QStandardItemModel; +class QItemSelectionModel; + +class DbEmptyDialog : public QDialog { Q_OBJECT public: - enum Mode { Actors, Genres }; - explicit DbAnalyzerDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); - - public slots: - void refresh(); - - signals: - void partClicked(int seriesPartId, int seriesId); - void delItems(int mode, QList<int> &ids); - - private slots: - void cancelAnalyzer(); - void analyzerStarted(); - void analyzerFinished(); - void noDataDoubleClicked(const QModelIndex &); - void deleteItems(); - void tabChanged(int index); - void setMarks(); - void deleteMarks(); + DbEmptyDialog(const QString &caption, QWidget *parent = 0, Qt::WindowFlags f = 0); + QStandardItemModel *model() { return mModel; } + QSqlDatabase db() { return mDb; } + QItemSelectionModel *selectionModel(); + + public slots: + virtual void populate(); + virtual void deleteItem(); private: - void populate(SmTreeView *view ,SmTreeModel *model, const QList<QList<QVariant> > &data, const QHash<int, QVariant> &marks = QHash<int, QVariant>()); - const QList<int> currentIds() const; - QTabWidget *mTab; - SmTreeView *mNoActorsV; - SmTreeView *mNoCoversV; - SmTreeView *mStrayActorsV; - SmTreeView *mStrayGenresV; - SmTreeModel *mNoActorsM; - SmTreeModel *mNoCoversM; - SmTreeModel *mStrayActorsM; - SmTreeModel *mStrayGenresM; + SmTreeView *mView; QPushButton *mClose; - QPushButton *mCancel; - QPushButton *mMark; - QPushButton *mRefresh; QPushButton *mDelete; - QLabel *mTotal; - QList<QString> mTotals; - DbAnalyzer *mAnalyzer; - int mMarkMode; - SmTreeView *mCurrentView; - QStackedLayout *mButtonStack; + QStandardItemModel *mModel; + QSqlDatabase mDb; }; -class DbAnalyzer : public QThread { +class EmptyActorsDialog : public DbEmptyDialog { Q_OBJECT public: - enum Status { Ok, Fail }; - enum Marks { NOMARKS = 0, MARKS_ACTORS = 1, MARKS_COVERS = 2 }; - explicit DbAnalyzer(QObject *parent = 0); - ~DbAnalyzer(); - int status() { return mStatus; } - const QList<QList<QVariant> > noActors() const { return mNoActorR; } - const QHash<int, QVariant> actorMarks() const { return mActorMarks; } - const QList<QList<QVariant> > noCovers() const { return mNoCoverR; } - const QHash<int, QVariant> coverMarks() const { return mCoverMarks; } - const QList<QList<QVariant> > strayActors() { return mStrayActorR; } - const QList<QList<QVariant> > strayGenres() { return mStrayGenresR; } + explicit EmptyActorsDialog(const QString &caption, QWidget *parent = 0, Qt::WindowFlags f = 0); public slots: - void setCancel(bool canceled); - void setMarks(const QList<int> &ids, int reason, int mark_id); - void deleteMarks(const QList<int> &ids, int reason); + virtual void populate(); + virtual void deleteItem(); +}; - signals: - void message(const QString &); +class EmptyGenresDialog : public DbEmptyDialog{ + Q_OBJECT + public: + explicit EmptyGenresDialog(const QString &caption, QWidget *parent = 0, Qt::WindowFlags f = 0); - protected: - void run(); + public slots: + virtual void populate(); + virtual void deleteItem(); +}; - private: - const QList<QList<QVariant> > noDataCheck(QSqlQuery *query); - const QList<QList<QVariant> > strayCheck(QSqlQuery *query); - QHash<int, QVariant> marks(int markType); - void setStatus(int status); - QSqlDatabase mDb; - QSqlQuery *mNoActorQuery; - QSqlQuery *mNoCoverQuery; - QSqlQuery *mStrayActorsQuery; - QSqlQuery *mStrayGenresQuery; - QSqlQuery *mMarksQuery; - QSqlQuery *mSetMarksQuery; - QSqlQuery *mDeleteMarksQuery; - QList<QList<QVariant> > mNoActorR; - QList<QList<QVariant> > mNoCoverR; - QList<QList<QVariant> > mStrayActorR; - QList<QList<QVariant> > mStrayGenresR; - QHash<int, QVariant> mActorMarks; - QHash<int, QVariant> mCoverMarks; - QMutex mCancelMutex; - QMutex mStatusMutex; - bool mCanceled; - int mStatus; +class EmptySeriesDialog : public DbEmptyDialog{ + Q_OBJECT + public: + explicit EmptySeriesDialog(const QString &caption, QWidget *parent, Qt::WindowFlags f = 0); + + public slots: + virtual void populate(); + virtual void deleteItem(); +}; + +class EmptyPartsDialog : public DbEmptyDialog{ + Q_OBJECT + public: + explicit EmptyPartsDialog(const QString &caption, QWidget *parent, Qt::WindowFlags f = 0); + + public slots: + virtual void populate(); + virtual void deleteItem(); }; #endif // DBANALYZER_H |