From ae35df6499dd5cae4bd0ffb17d29576743514c51 Mon Sep 17 00:00:00 2001 From: birkeh Date: Sun, 4 Nov 2018 20:45:20 +0100 Subject: [PATCH] added movie discover --- cdiscover.cpp | 1 + cdiscover.h | 4 +- cmoviedetails.ui | 180 +++++++++++++++++++++++++++++++++++++++++++-- cmoviediscover.cpp | 58 +++++++++++++-- cmoviediscover.h | 8 +- cmoviediscover.ui | 34 +++++++-- 6 files changed, 264 insertions(+), 21 deletions(-) diff --git a/cdiscover.cpp b/cdiscover.cpp index c8e6dae..f7e82a8 100644 --- a/cdiscover.cpp +++ b/cdiscover.cpp @@ -1,6 +1,7 @@ #include "cdiscover.h" #include "ui_cdiscover.h" + cDiscover::cDiscover(QWidget *parent) : QDialog(parent), ui(new Ui::cDiscover) diff --git a/cdiscover.h b/cdiscover.h index 6b1532d..ea4a1fe 100644 --- a/cdiscover.h +++ b/cdiscover.h @@ -1,8 +1,10 @@ #ifndef CDISCOVER_H #define CDISCOVER_H + #include + namespace Ui { class cDiscover; } @@ -16,7 +18,7 @@ public: ~cDiscover(); private: - Ui::cDiscover *ui; + Ui::cDiscover* ui; }; #endif // CDISCOVER_H diff --git a/cmoviedetails.ui b/cmoviedetails.ui index 4100175..aeeecae 100644 --- a/cmoviedetails.ui +++ b/cmoviedetails.ui @@ -1,21 +1,189 @@ + - - - cMovieDetails 0 0 - 400 - 300 + 781 + 596 Form + + + + + + + + + + + true + + + + + + + Year: + + + + + + + true + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + 310 + 200 + + + + QFrame::Box + + + + + + Qt::AlignCenter + + + + + + + + + true + + + + + 0 + 0 + 761 + 310 + + + + + + + + + true + + + + + + + + + + + Actors + + + + + + + 2 + + + false + + + + 1 + + + + + 2 + + + + + + + + + + + + Genre + + + + + + + 2 + + + false + + + + 1 + + + + + 2 + + + + + + + + + + + + + + + - + + + cVerticalLabel + QLabel +
cverticallabel.h
+
+
+
diff --git a/cmoviediscover.cpp b/cmoviediscover.cpp index 6fd1f16..b33c5fb 100644 --- a/cmoviediscover.cpp +++ b/cmoviediscover.cpp @@ -4,16 +4,17 @@ #include "ccheckboxitemdelegate.h" #include "cthemoviedbv3.h" -#include "cmovie.h" - #include #include #include +#include -cMovieDiscover::cMovieDiscover(QWidget *parent) : + +cMovieDiscover::cMovieDiscover(const cMovieList movieList, QWidget *parent) : QDialog(parent), - ui(new Ui::cMovieDiscover) + ui(new Ui::cMovieDiscover), + m_movieList(movieList) { ui->setupUi(this); @@ -24,6 +25,13 @@ cMovieDiscover::cMovieDiscover(QWidget *parent) : ui->m_lpGenres->setItemDelegate(new cCheckBoxItemDelegate()); ui->m_lpGenres->setWrapping(true); + m_lpMoviesModel = new QStandardItemModel(0, 1); + ui->m_lpMovies->setModel(m_lpMoviesModel); + + headerLabels = QStringList() << tr("Title") << tr("Year"); + m_lpMoviesModel->setHorizontalHeaderLabels(headerLabels); + + connect(ui->m_lpVoting, &QxtSpanSlider::spanChanged, this, &cMovieDiscover::spanChanged); ui->m_lpVoting->setRange(0, 100); @@ -80,13 +88,53 @@ void cMovieDiscover::on_m_lpDiscover_clicked() genres.append(lpItem->data().toInt()); } + setCursor(Qt::WaitCursor); + cTheMovieDBV3 movieDB3; QList movieList = movieDB3.discoverMovie(szText, bAdult, iYear, genres, voteMin, voteMax, "de-DE"); - m_lp + m_lpMoviesModel->clear(); + + QStringList headerLabels = QStringList() << tr("Title") << tr("Year"); + m_lpMoviesModel->setHorizontalHeaderLabels(headerLabels); + + for(int x = 0; x < movieList.count();x++) + { + cMovie* lpMovie = movieList[x]; + + if(m_movieList.find(lpMovie->movieID())) + continue; + QList items; + + items.append(new QStandardItem(lpMovie->movieTitle())); + items.append(new QStandardItem(QString::number(lpMovie->releaseDate().year()))); + items[0]->setData(QVariant::fromValue(lpMovie)); + items[1]->setData(QVariant::fromValue(lpMovie)); + items[0]->setCheckable(true); + + m_lpMoviesModel->appendRow(items); + } + + for(int x = 0;x < headerLabels.count();x++) + ui->m_lpMovies->resizeColumnToContents(x); + + setCursor(Qt::ArrowCursor); } void cMovieDiscover::on_m_lpYearEnable_clicked(bool checked) { ui->m_lpYear->setEnabled(checked); } + +void cMovieDiscover::on_m_lpMovies_clicked(const QModelIndex &index) +{ + QStandardItem* lpItem = m_lpMoviesModel->itemFromIndex(index); + cMovie* lpMovie = lpItem->data().value(); + + if(lpMovie->cast().isEmpty()) + { + cTheMovieDBV3 theMovieDB; + theMovieDB.loadCastMovie(lpMovie); + } + ui->m_lpMovieDetails->setMovie(lpMovie); +} diff --git a/cmoviediscover.h b/cmoviediscover.h index c309796..25d7798 100644 --- a/cmoviediscover.h +++ b/cmoviediscover.h @@ -2,6 +2,8 @@ #define CMOVIEDISCOVER_H +#include "cmovie.h" + #include #include @@ -15,7 +17,7 @@ class cMovieDiscover : public QDialog Q_OBJECT public: - explicit cMovieDiscover(QWidget *parent = 0); + explicit cMovieDiscover(const cMovieList movieList, QWidget *parent = 0); ~cMovieDiscover(); private slots: @@ -23,9 +25,13 @@ private slots: void on_m_lpDiscover_clicked(); void on_m_lpYearEnable_clicked(bool checked); + void on_m_lpMovies_clicked(const QModelIndex &index); + private: Ui::cMovieDiscover* ui; QStandardItemModel* m_lpGenresModel; + QStandardItemModel* m_lpMoviesModel; + cMovieList m_movieList; }; #endif // CMOVIEDISCOVER_H diff --git a/cmoviediscover.ui b/cmoviediscover.ui index 9500a4e..2313628 100644 --- a/cmoviediscover.ui +++ b/cmoviediscover.ui @@ -6,8 +6,8 @@ 0 0 - 868 - 499 + 900 + 500 @@ -15,7 +15,7 @@ - + @@ -54,6 +54,9 @@ + + false + 1800 @@ -135,12 +138,16 @@ - + - + + + QAbstractItemView::NoEditTriggers + + - + true @@ -149,10 +156,15 @@ 0 0 - 418 - 283 + 579 + 284 + + + + + @@ -178,6 +190,12 @@ QSlider
qxtspanslider.h
+ + cMovieDetails + QWidget +
cmoviedetails.h
+ 1 +