diff options
Diffstat (limited to 'moviewidget.cpp')
-rw-r--r-- | moviewidget.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/moviewidget.cpp b/moviewidget.cpp index 349015d..3dea463 100644 --- a/moviewidget.cpp +++ b/moviewidget.cpp @@ -46,7 +46,7 @@ void MovieWidget::setupWidget(){ QLabel *selectionL = new QLabel(tr("Selection")); mSelectionCB = new QComboBox; - QStringList selections = QStringList() << tr("Actors") << tr("Favorites") << tr("Genres") << tr("Series"); + QStringList selections = QStringList() << tr("Actors") << tr("Genres") << tr("Series"); mSelectionCB->addItems(selections); connect(mSelectionCB, &QComboBox::currentTextChanged, [=] { selectBy(mSelectionCB->currentText()); }); @@ -99,6 +99,8 @@ void MovieWidget::selectBy(const QString &selection){ populateBySeries(); }else if(selection == "Actors"){ populateByActors(); + }else if(selection == "Genres"){ + populateByGenres(); } } @@ -187,6 +189,48 @@ void MovieWidget::populateByActors(){ qApp->restoreOverrideCursor(); } +void MovieWidget::populateByGenres(){ + 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 genresQ("SELECT genres.tgenrename, seriesparts_genremap.iseriesparts_id, series.tseries_name, seriesparts.iseriesparts_id, seriesparts.iseriespart, seriesparts.bfavorite, seriesparts.tsubtitle FROM genres, seriesparts_genremap, series, seriesparts WHERE genres.igenres_id = seriesparts_genremap.igenres_id AND seriesparts_genremap.iseriesparts_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id ORDER BY genres.tgenrename, series.tseries_name", db); + while(genresQ.next()){ + QBrush currentBrush = blackBrush; + QList<QStandardItem*> items; + QString genre(genresQ.value(0).toString()); + genre.append(QString(" - %1").arg(genresQ.value(2).toString())); + if(genresQ.value(4).toInt() > 0){ + genre.append(QString(" %1").arg(QString::number(genresQ.value(4).toInt()))); + } + if(!genresQ.value(6).toString().isEmpty()){ + genre.append(QString(" - %1").arg(genresQ.value(6).toString())); + } + if(genresQ.value(5).toBool()){ + currentBrush = greenBrush; + } + for(int i = 0; i < 1; ++i){ + QStandardItem *item = new QStandardItem; + item->setForeground(currentBrush); + item->setData(genresQ.value(1), SeriesPartIdRole); + item->setFont(f); + items << item; + } + items[0]->setText(genre); + 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); |