summaryrefslogtreecommitdiffstats
path: root/dbanalyzer.h
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2011-12-28 19:36:05 +0100
committerArno <am@disconnect.de>2011-12-28 19:36:05 +0100
commit83d2b014f563b9de387c4d8e9e45adbb36b56825 (patch)
tree09174bbb145df0967dfe4cd11c0cd829b36db51e /dbanalyzer.h
parenta18c569e6ffaea7a8a4f387b1c1e4245146e29d8 (diff)
downloadSheMov-83d2b014f563b9de387c4d8e9e45adbb36b56825.tar.gz
SheMov-83d2b014f563b9de387c4d8e9e45adbb36b56825.tar.bz2
SheMov-83d2b014f563b9de387c4d8e9e45adbb36b56825.zip
Mark items in DbAnalyzerDialog
It's now possible to mark items in DbAnalyzerDialog with a different color, when there are no covers or actor information available on the net. I enhanced SmTreeItem to contain a QVariant::foregroundColor, and made SmTreeModel return it when QModelIndex::data with role Qt::ForegroundRole is called. Maybe that could be useful for other things like favorites and such...
Diffstat (limited to 'dbanalyzer.h')
-rw-r--r--dbanalyzer.h28
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;