summaryrefslogtreecommitdiffstats
path: root/dbanalyzer.h
diff options
context:
space:
mode:
authorArno Moeller <arno.moeller@bit.bremerhaven.de>2013-07-18 16:23:22 +0200
committerArno Moeller <arno.moeller@bit.bremerhaven.de>2013-07-18 16:23:22 +0200
commitfd65ae2d1eb8d601108aa845cfd64654af897a2a (patch)
tree5d286a2da4d7f3b761acf94f73d1c7049badeb84 /dbanalyzer.h
parent057da448ad06de20b8054ae1ba5ed7f6fb656c1b (diff)
downloadSheMov-fd65ae2d1eb8d601108aa845cfd64654af897a2a.tar.gz
SheMov-fd65ae2d1eb8d601108aa845cfd64654af897a2a.tar.bz2
SheMov-fd65ae2d1eb8d601108aa845cfd64654af897a2a.zip
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.
Diffstat (limited to 'dbanalyzer.h')
-rw-r--r--dbanalyzer.h135
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