From fd65ae2d1eb8d601108aa845cfd64654af897a2a Mon Sep 17 00:00:00 2001 From: Arno Moeller Date: Thu, 18 Jul 2013 16:23:22 +0200 Subject: Clean up the db analyzer mess I guess I was quite drunk when I designed this overengineered, multithreaded monstrosity. Replace it with 4 nifty dialogs. --- dbanalyzer.h | 135 +++++++++++++++++++++-------------------------------------- 1 file changed, 47 insertions(+), 88 deletions(-) (limited to 'dbanalyzer.h') 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 -#include +#include #include -#include #include -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 &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 > &data, const QHash &marks = QHash()); - const QList 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 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 > noActors() const { return mNoActorR; } - const QHash actorMarks() const { return mActorMarks; } - const QList > noCovers() const { return mNoCoverR; } - const QHash coverMarks() const { return mCoverMarks; } - const QList > strayActors() { return mStrayActorR; } - const QList > 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 &ids, int reason, int mark_id); - void deleteMarks(const QList &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 > noDataCheck(QSqlQuery *query); - const QList > strayCheck(QSqlQuery *query); - QHash marks(int markType); - void setStatus(int status); - QSqlDatabase mDb; - QSqlQuery *mNoActorQuery; - QSqlQuery *mNoCoverQuery; - QSqlQuery *mStrayActorsQuery; - QSqlQuery *mStrayGenresQuery; - QSqlQuery *mMarksQuery; - QSqlQuery *mSetMarksQuery; - QSqlQuery *mDeleteMarksQuery; - QList > mNoActorR; - QList > mNoCoverR; - QList > mStrayActorR; - QList > mStrayGenresR; - QHash mActorMarks; - QHash 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 -- cgit v1.2.3-70-g09d2