diff options
author | Arno <arno@disconnect.de> | 2018-04-03 19:55:20 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-04-03 19:55:20 +0200 |
commit | f552f619af14226f141beb7afe61b5862390c5b9 (patch) | |
tree | aa2aa974b01fcc471efd0f00f14d9de56fd32558 /moviewidget.cpp | |
parent | 73eb5dcad4703aa8e63ad43b4f36e3beb48c9908 (diff) | |
download | SheMov-f552f619af14226f141beb7afe61b5862390c5b9.tar.gz SheMov-f552f619af14226f141beb7afe61b5862390c5b9.tar.bz2 SheMov-f552f619af14226f141beb7afe61b5862390c5b9.zip |
MovieWidget: Implement populateByActors
Diffstat (limited to 'moviewidget.cpp')
-rw-r--r-- | moviewidget.cpp | 73 |
1 files changed, 65 insertions, 8 deletions
diff --git a/moviewidget.cpp b/moviewidget.cpp index d214cb8..349015d 100644 --- a/moviewidget.cpp +++ b/moviewidget.cpp @@ -97,6 +97,8 @@ void MovieWidget::setupWidget(){ void MovieWidget::selectBy(const QString &selection){ if(selection == "Series"){ populateBySeries(); + }else if(selection == "Actors"){ + populateByActors(); } } @@ -143,6 +145,48 @@ void MovieWidget::populateBySeries(){ qApp->restoreOverrideCursor(); } +void MovieWidget::populateByActors(){ + qApp->setOverrideCursor(Qt::BusyCursor); + mTopView->setSortingEnabled(false); + mTopView->setUpdatesEnabled(false); + mTopModel->clear(); + mTopModel->setHorizontalHeaderLabels(QStringList() << tr("Series")); + QFont f("courier new"); + QBrush blackBrush(Qt::black); + QBrush greenBrush(Qt::darkGreen); + QStandardItem *root = mTopModel->invisibleRootItem(); + QSqlDatabase db = QSqlDatabase::database("treedb"); + QSqlQuery actorsQ("SELECT actors.tactorname, seriesparts_actormap.iseriesparts_id, series.tseries_name, seriesparts.iseriesparts_id, seriesparts.iseriespart, seriesparts.bfavorite, seriesparts.tsubtitle FROM actors, seriesparts_actormap, series, seriesparts WHERE actors.iactors_id = seriesparts_actormap.iactors_id AND seriesparts_actormap.iseriesparts_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id ORDER BY actors.tactorname, series.tseries_name", db); + while(actorsQ.next()){ + QBrush currentBrush = blackBrush; + QList<QStandardItem*> items; + QString actor(actorsQ.value(0).toString()); + actor.append(QString(" - %1").arg(actorsQ.value(2).toString())); + if(actorsQ.value(4).toInt() > 0){ + actor.append(QString(" %1").arg(QString::number(actorsQ.value(4).toInt()))); + } + if(!actorsQ.value(6).toString().isEmpty()){ + actor.append(QString(" - %1").arg(actorsQ.value(6).toString())); + } + if(actorsQ.value(5).toBool()){ + currentBrush = greenBrush; + } + for(int i = 0; i < 1; ++i){ + QStandardItem *item = new QStandardItem; + item->setForeground(currentBrush); + item->setData(actorsQ.value(1), SeriesPartIdRole); + item->setFont(f); + items << item; + } + items[0]->setText(actor); + items[0]->setIcon(QIcon(":/bizarre_amputee.png")); + root->appendRow(items); + } + mTopView->setUpdatesEnabled(true); + mTopView->setSortingEnabled(true); + qApp->restoreOverrideCursor(); +} + void MovieWidget::topSelectionChanged(){ mBottomView->setUpdatesEnabled(false); mBottomView->setSortingEnabled(false); @@ -152,12 +196,15 @@ void MovieWidget::topSelectionChanged(){ QSqlDatabase db = QSqlDatabase::database("treedb"); QSqlQuery selectFilesQ(db); selectFilesQ.prepare("SELECT tfilename, cmd5sum, bisize, siquality, iduration, sifileno FROM files WHERE iseriespart_id = :arg ORDER BY sifileno"); - QModelIndex selected = mTopView->selectionModel()->selectedRows().first(); - if(selected.isValid()){ + QModelIndexList selected = mTopView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + if(selected.first().isValid()){ QFont f("courier new"); QStandardItem *root = mBottomModel->invisibleRootItem(); mBottomModel->setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("No.") << tr("Q.") << tr("Size") << tr("Dur.") << tr("MD5")); - selectFilesQ.bindValue(":arg", selected.data(SeriesPartIdRole)); + selectFilesQ.bindValue(":arg", selected.first().data(SeriesPartIdRole)); selectFilesQ.exec(); QLocale l; while(selectFilesQ.next()){ @@ -170,10 +217,18 @@ void MovieWidget::topSelectionChanged(){ } items[0]->setText(selectFilesQ.value(0).toString()); items[0]->setIcon(QIcon(":/hourglass_figure.png")); - items[1]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); - items[1]->setText(QString::number(selectFilesQ.value(5).toInt())); - items[2]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); - items[2]->setText(QString::number(selectFilesQ.value(3).toInt())); + if(selectFilesQ.value(5).toInt() > 0){ + items[1]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); + items[1]->setText(QString::number(selectFilesQ.value(5).toInt())); + }else{ + items[1]->setText(QString()); + } + if(selectFilesQ.value(3).toInt() > 0){ + items[2]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); + items[2]->setText(QString::number(selectFilesQ.value(3).toInt())); + }else{ + items[2]->setText(QString()); + } items[3]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); items[3]->setText(l.toString(selectFilesQ.value(2).toLongLong())); items[4]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); @@ -184,5 +239,7 @@ void MovieWidget::topSelectionChanged(){ } mBottomView->setUpdatesEnabled(true); mBottomView->setSortingEnabled(true); - mBottomView->resizeColumnToContents(0); + for(int i = 0; i < 6; ++i){ + mBottomView->resizeColumnToContents(i); + } } |