diff options
author | Arno <arno@disconnect.de> | 2018-04-03 20:11:58 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-04-03 20:11:58 +0200 |
commit | 95ebab8523178721884886c51ff90ca2bae23053 (patch) | |
tree | 4eb8490693a4b3023c449db65a5d26eab86b2320 | |
parent | f552f619af14226f141beb7afe61b5862390c5b9 (diff) | |
download | SheMov-95ebab8523178721884886c51ff90ca2bae23053.tar.gz SheMov-95ebab8523178721884886c51ff90ca2bae23053.tar.bz2 SheMov-95ebab8523178721884886c51ff90ca2bae23053.zip |
MovieWidget: Implement populateByGenres
Also remove Favorites from selection. Should be an option with random
player, if at all.
-rw-r--r-- | moviewidget.cpp | 46 | ||||
-rw-r--r-- | moviewidget.h | 1 |
2 files changed, 46 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); diff --git a/moviewidget.h b/moviewidget.h index 95931bc..d1f00f0 100644 --- a/moviewidget.h +++ b/moviewidget.h @@ -19,6 +19,7 @@ class MovieWidget : public QWidget { void selectBy(const QString &selection); void populateBySeries(); void populateByActors(); + void populateByGenres(); void topSelectionChanged(); private: |