summaryrefslogtreecommitdiffstats
path: root/dbanalyzer.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2011-12-17 09:18:24 +0100
committerArno <am@disconnect.de>2011-12-17 09:18:24 +0100
commit41988854efb9a6e0a3d3196628b5fd2c853bf059 (patch)
treead3b418b1f3dce250fe65094beda7b8d6f9abf2d /dbanalyzer.cpp
parent621e72e606f88739a67ce6efc4832e0abdc34ffa (diff)
downloadSheMov-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.
Diffstat (limited to 'dbanalyzer.cpp')
-rw-r--r--dbanalyzer.cpp51
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"));
-}
+}*/