diff options
author | Arno <am@disconnect.de> | 2011-12-17 09:18:24 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2011-12-17 09:18:24 +0100 |
commit | 41988854efb9a6e0a3d3196628b5fd2c853bf059 (patch) | |
tree | ad3b418b1f3dce250fe65094beda7b8d6f9abf2d | |
parent | 621e72e606f88739a67ce6efc4832e0abdc34ffa (diff) | |
download | SheMov-41988854efb9a6e0a3d3196628b5fd2c853bf059.tar.gz SheMov-41988854efb9a6e0a3d3196628b5fd2c853bf059.tar.bz2 SheMov-41988854efb9a6e0a3d3196628b5fd2c853bf059.zip |
Added stray genres check
Mostly copy and paste from stray actors check. Generalized fetching data
for stray items.
-rw-r--r-- | dbanalyzer.cpp | 51 | ||||
-rw-r--r-- | dbanalyzer.h | 7 |
2 files changed, 53 insertions, 5 deletions
diff --git a/dbanalyzer.cpp b/dbanalyzer.cpp index 22478c5..539a1bc 100644 --- a/dbanalyzer.cpp +++ b/dbanalyzer.cpp @@ -60,6 +60,21 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog mStrayActorsV->setAlternatingRowColors(true); strayActorsT->setLayout(strayActorsL); + //strac genres + QWidget *strayGenresT = new QWidget; + QStringList strayGenresHeaders = QStringList() << tr("Genre") << tr("Genre Id") << tr("Count"); + mStrayGenresV = new QTreeView; + mStrayGenresM = new SmTreeModel(strayGenresHeaders, this); + mStrayGenresV->setModel(mStrayGenresM); + QVBoxLayout *strayGenresL = new QVBoxLayout; + strayGenresL->addWidget(mStrayGenresV); + mStrayGenresV->setColumnHidden(1, true); + mStrayGenresV->setEditTriggers(QTreeView::NoEditTriggers); + mStrayGenresV->setSelectionBehavior(QAbstractItemView::SelectRows); + mStrayGenresV->setSelectionMode(QAbstractItemView::ExtendedSelection); + mStrayGenresV->setAlternatingRowColors(true); + strayGenresT->setLayout(strayGenresL); + //buttons mCancel = new QPushButton(tr("Cancel")); connect(mCancel, SIGNAL(clicked()), this, SLOT(cancelAnalyzer())); @@ -72,6 +87,7 @@ DbAnalyzerDialog::DbAnalyzerDialog(QWidget *parent, Qt::WindowFlags f) : QDialog //setup dialog mTab->addTab(noActorsT, tr("No Actors")); mTab->addTab(strayActorsT, tr("Stray actors")); + mTab->addTab(strayGenresT, tr("Stray genres")); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(mTab); QHBoxLayout *buttonLayout = new QHBoxLayout; @@ -104,6 +120,7 @@ void DbAnalyzerDialog::analyzerFinished(){ mClose->setEnabled(true); populate(mNoActorsV, mNoActorsM, mAnalyzer->noActors()); populate(mStrayActorsV, mStrayActorsM, mAnalyzer->strayActors()); + populate(mStrayGenresV, mStrayGenresM, mAnalyzer->strayGenres()); } void DbAnalyzerDialog::noActorsDoubleClicked(const QModelIndex &idx){ @@ -126,6 +143,10 @@ void DbAnalyzerDialog::deleteItems(){ view = mStrayActorsV; deleteMode = Actors; break; + case 2: + view = mStrayGenresV; + deleteMode = Genres; + break; default: view = 0; break; @@ -164,12 +185,15 @@ DbAnalyzer::DbAnalyzer(QObject *parent) : QThread(parent), mCanceled(false), mSt mNoActorQuery = new QSqlQuery(mDb); mNoActorQuery->prepare("SELECT series.tseries_name, seriesparts.iseriespart, seriesparts.tsubtitle, series.iseries_id, seriesparts.iseriesparts_id FROM series, seriesparts LEFT JOIN seriesparts_actormap ON seriesparts.iseriesparts_id = seriesparts_actormap.iseriesparts_id WHERE iactors_id IS NULL AND seriesparts.iseries_id = series.iseries_id ORDER BY tseries_name"); mStrayActorsQuery = new QSqlQuery(mDb); - mStrayActorsQuery->prepare("SELECT actors.tactorname, actors.iactors_id, COUNT(seriesparts_actormap.iactors_id) FROM actors LEFT JOIN seriesparts_actormap ON actors.iactors_id = seriesparts_actormap.iactors_id WHERE seriesparts_actormap.iactors_id IS NULL GROUP BY actors.iactors_id, actors.tactorname ORDER BY actors.tactorname;"); + mStrayActorsQuery->prepare("SELECT actors.tactorname, actors.iactors_id, COUNT(seriesparts_actormap.iactors_id) FROM actors LEFT JOIN seriesparts_actormap ON actors.iactors_id = seriesparts_actormap.iactors_id WHERE seriesparts_actormap.iactors_id IS NULL GROUP BY actors.iactors_id, actors.tactorname ORDER BY actors.tactorname"); + mStrayGenresQuery = new QSqlQuery(mDb); + mStrayGenresQuery->prepare("SELECT genres.tgenrename, genres.igenres_id, COUNT(seriesparts_genremap.igenres_id) FROM genres LEFT JOIN seriesparts_genremap ON genres.igenres_id = seriesparts_genremap.igenres_id WHERE seriesparts_genremap.igenres_id IS NULL GROUP BY genres.igenres_id, genres.tgenrename ORDER BY genres.tgenrename"); } DbAnalyzer::~DbAnalyzer(){ delete mNoActorQuery; delete mStrayActorsQuery; + delete mStrayGenresQuery; mDb.close(); mDb = QSqlDatabase(); QSqlDatabase::removeDatabase("analyzerDb"); @@ -182,7 +206,8 @@ void DbAnalyzer::setCancel(bool canceled){ void DbAnalyzer::run(){ noActorsCheck(); - strayActorsCheck(); + mStrayActorR = strayCheck(mStrayActorsQuery); + mStrayGenresR = strayCheck(mStrayGenresQuery); } void DbAnalyzer::noActorsCheck(){ @@ -208,7 +233,25 @@ void DbAnalyzer::noActorsCheck(){ emit message(tr("Done fetching movies")); } -void DbAnalyzer::strayActorsCheck(){ +const QList<QList<QVariant> > DbAnalyzer::strayCheck(QSqlQuery *query){ + if(!query->exec()){ + QMutexLocker m(&mStatusMutex); + mStatus = Fail; + return QList<QList<QVariant> >(); + } + QList<QList<QVariant> > retval; + while(query->next()){ + if(mCanceled){ + break; + } + QList<QVariant> res; + res << query->value(0) << query->value(1) << query->value(2); + retval << res; + } + return retval; +} + +/*void DbAnalyzer::strayActorsCheck(){ if(!mStrayActorsQuery->exec()){ QMutexLocker m(&mStatusMutex); mStatus = Fail; @@ -224,4 +267,4 @@ void DbAnalyzer::strayActorsCheck(){ mStrayActorR << res; } emit message(tr("Done fetching stray actors")); -} +}*/ diff --git a/dbanalyzer.h b/dbanalyzer.h index b300c3a..1e47742 100644 --- a/dbanalyzer.h +++ b/dbanalyzer.h @@ -46,8 +46,10 @@ class DbAnalyzerDialog : public QDialog { QTabWidget *mTab; QTreeView *mNoActorsV; QTreeView *mStrayActorsV; + QTreeView *mStrayGenresV; SmTreeModel *mNoActorsM; SmTreeModel *mStrayActorsM; + SmTreeModel *mStrayGenresM; QPushButton *mClose; QPushButton *mCancel; QPushButton *mDelete; @@ -63,6 +65,7 @@ class DbAnalyzer : public QThread { int status() { return mStatus; } const QList<QList<QVariant> > noActors() { return mNoActorR; } const QList<QList<QVariant> > strayActors() { return mStrayActorR; } + const QList<QList<QVariant> > strayGenres() { return mStrayGenresR; } public slots: void setCancel(bool canceled); @@ -75,12 +78,14 @@ class DbAnalyzer : public QThread { private: void noActorsCheck(); - void strayActorsCheck(); + const QList<QList<QVariant> > strayCheck(QSqlQuery *query); QSqlDatabase mDb; QSqlQuery *mNoActorQuery; QSqlQuery *mStrayActorsQuery; + QSqlQuery *mStrayGenresQuery; QList<QList<QVariant> > mNoActorR; QList<QList<QVariant> > mStrayActorR; + QList<QList<QVariant> > mStrayGenresR; QMutex mCancelMutex; QMutex mStatusMutex; bool mCanceled; |