summaryrefslogtreecommitdiffstats
path: root/moviewidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-04-03 19:55:20 +0200
committerArno <arno@disconnect.de>2018-04-03 19:55:20 +0200
commitf552f619af14226f141beb7afe61b5862390c5b9 (patch)
treeaa2aa974b01fcc471efd0f00f14d9de56fd32558 /moviewidget.cpp
parent73eb5dcad4703aa8e63ad43b4f36e3beb48c9908 (diff)
downloadSheMov-f552f619af14226f141beb7afe61b5862390c5b9.tar.gz
SheMov-f552f619af14226f141beb7afe61b5862390c5b9.tar.bz2
SheMov-f552f619af14226f141beb7afe61b5862390c5b9.zip
MovieWidget: Implement populateByActors
Diffstat (limited to 'moviewidget.cpp')
-rw-r--r--moviewidget.cpp73
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);
+ }
}