diff options
Diffstat (limited to 'dbanalyzer.h')
-rw-r--r-- | dbanalyzer.h | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/dbanalyzer.h b/dbanalyzer.h index 653aa70..25b0bfb 100644 --- a/dbanalyzer.h +++ b/dbanalyzer.h @@ -11,6 +11,7 @@ #include <QThread> #include <QVariant> #include <QList> +#include <QHash> #include <QDialog> #include <QSqlDatabase> #include <QMutex> @@ -27,7 +28,7 @@ class QLabel; class DbAnalyzerDialog : public QDialog { Q_OBJECT public: - enum DeleteMode { Actors, Genres }; + enum Mode { Actors, Genres }; explicit DbAnalyzerDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); public slots: @@ -44,9 +45,12 @@ class DbAnalyzerDialog : public QDialog { void noDataDoubleClicked(const QModelIndex &); void deleteItems(); void tabChanged(int index); + void setMarks(); + void deleteMarks(); private: - void populate(QTreeView *view ,SmTreeModel *model, const QList<QList<QVariant> > &data); + void populate(QTreeView *view ,SmTreeModel *model, const QList<QList<QVariant> > &data, const QHash<int, QVariant> &marks = QHash<int, QVariant>()); + const QList<int> currentIds() const; QTabWidget *mTab; QTreeView *mNoActorsV; QTreeView *mNoCoversV; @@ -58,27 +62,34 @@ class DbAnalyzerDialog : public QDialog { SmTreeModel *mStrayGenresM; QPushButton *mClose; QPushButton *mCancel; - QPushButton *mDelete; + QPushButton *mMark; QPushButton *mRefresh; QLabel *mTotal; QList<QString> mTotals; DbAnalyzer *mAnalyzer; + int mMarkMode; + QTreeView *mCurrentView; }; class DbAnalyzer : public QThread { 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() { return mNoActorR; } - const QList<QList<QVariant> > noCovers() { return mNoCoverR; } + 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; } 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); signals: void message(const QString &); @@ -89,15 +100,22 @@ class DbAnalyzer : public QThread { 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; |