diff options
Diffstat (limited to 'dbanalyzer.cpp')
-rw-r--r-- | dbanalyzer.cpp | 51 |
1 files changed, 47 insertions, 4 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")); -} +}*/ |