summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-04-03 20:11:58 +0200
committerArno <arno@disconnect.de>2018-04-03 20:11:58 +0200
commit95ebab8523178721884886c51ff90ca2bae23053 (patch)
tree4eb8490693a4b3023c449db65a5d26eab86b2320
parentf552f619af14226f141beb7afe61b5862390c5b9 (diff)
downloadSheMov-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.cpp46
-rw-r--r--moviewidget.h1
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: