diff --git a/cedit.cpp b/cedit.cpp
index 362bc00..1e50f66 100644
--- a/cedit.cpp
+++ b/cedit.cpp
@@ -46,6 +46,11 @@ cEdit::cEdit(QWidget *parent) :
{
ui->setupUi(this);
+ QPalette palette = ui->m_lpDownloadLinkLabel->palette();
+ QColor col = palette.color(QPalette::Window);
+ QString color = QString("background-color: rgb(%1,%2,%3,%4);").arg(col.red()).arg(col.green()).arg(col.blue()).arg(95);
+ ui->m_lpScrollArea->setStyleSheet(color);
+
connect(ui->m_lpAllInit, SIGNAL(clicked()), this, SLOT(lpAllInit_clicked()));
connect(ui->m_lpAllProgress, SIGNAL(clicked()), this, SLOT(lpAllProgress_clicked()));
connect(ui->m_lpAllDone, SIGNAL(clicked()), this, SLOT(lpAllDone_clicked()));
@@ -86,7 +91,6 @@ void cEdit::setSerie(cSerie* lpSerie)
if(!lpSerie)
return;
-
ui->m_lpName->setText(lpSerie->seriesName());
ui->m_lpFirstAired->setDate(lpSerie->firstAired());
ui->m_lpCliffhanger->setChecked(lpSerie->cliffhanger());
@@ -132,6 +136,7 @@ void cEdit::setSerie(cSerie* lpSerie)
m_lpGroup = new QButtonGroup(this);
lpEpisode->setGroup(m_lpGroup);
m_lpLabel = new QLabel(QString("%1").arg(lpEpisode->episodeNumber()), m_lpGroupBox);
+
lpEpisode->setLabel(m_lpLabel);
if(bFirst)
@@ -190,6 +195,11 @@ void cEdit::setSerie(cSerie* lpSerie)
m_lpVerticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
ui->m_lpGridLayoutScroll->addItem(m_lpVerticalSpacer, x+1, 0, 1, 1);
+
+ cMovieImage image;
+ //QPixmap backdrop = image.getImage(m_lpSerie->backdropPath());
+ QPixmap poster = image.getImage(m_lpSerie->posterPath());
+ ui->m_lpProgressTab->setPixmap(poster);
}
void cEdit::lpAllInit_clicked()
@@ -242,11 +252,8 @@ void cEdit::on_m_lpTabWidget_tabBarClicked(int index)
lpDialog->show();
cMovieImage image;
- QPixmap backdrop = image.getImage(m_lpSerie->backdropPath());
- //QPalette palette;
- //palette.setBrush(this->backgroundRole(), QBrush(backdrop.toImage()));
- //this->setPalette(palette);
-// ui->m_lpDetailsBackdrop->setPixmap(backdrop);
+ QPixmap poster = image.getImage(m_lpSerie->posterPath());
+ ui->m_lpDetailsImage->setPixmap(poster.scaledToHeight(200));
ui->m_lpDetailsOverview->setText(m_lpSerie->overview());
ui->m_lpDetailsSeasonTab->clear();
diff --git a/cedit.ui b/cedit.ui
index 0dbe06b..f9f73df 100644
--- a/cedit.ui
+++ b/cedit.ui
@@ -6,7 +6,7 @@
0
0
- 804
+ 1173
732
@@ -21,7 +21,7 @@
1
-
+
Progress
@@ -61,7 +61,7 @@
-
-
-
+
Download Link:
@@ -107,10 +107,13 @@
0
0
- 754
+ 1123
546
+
+ true
+
@@ -121,134 +124,130 @@
-
+
Details
-
+
-
-
-
-
-
-
+
+
-
+
+
-
+
+
+ Actors
+
+
+
+ -
+
+
+ 2
+
+
+ false
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+
+
+ -
+
+
- 758
- 140
+ 16777215
+ 16777215
-
- QFrame::Box
-
-
-
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
+
true
-
-
-
- 0
- 0
- 756
- 241
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
- -
-
-
-
-
-
-
-
-
- Actors
-
-
-
- -
-
-
- 2
-
-
- false
-
-
-
- 1
-
-
-
-
- 2
-
-
-
-
-
-
- -
-
-
-
-
-
- Genre
-
-
-
- -
-
-
- false
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- 0
-
-
-
- Tab 1
-
-
-
+
-
+
+
-
+
+
+ Genre
+
+
+
+ -
+
+
+ false
+
+
+
+ 1
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ QFrame::Box
+
+
+
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+ -
+
+
+ 0
+
+
+
+ Tab 1
+
+
+
+
@@ -273,6 +272,12 @@
QLabel
+
+ cPixmapWidget
+ QWidget
+
+ 1
+
diff --git a/cepisodedetails.cpp b/cepisodedetails.cpp
index 40882f2..491e1be 100644
--- a/cepisodedetails.cpp
+++ b/cepisodedetails.cpp
@@ -5,6 +5,7 @@
#include "cmessageanimatedialog.h"
#include
+#include
cEpisodeDetails::cEpisodeDetails(QWidget *parent) :
@@ -26,6 +27,20 @@ void cEpisodeDetails::setEpisode(cEpisode* lpEpisode)
m_lpEpisode = lpEpisode;
ui->m_lpEpisodeTitle->setText(lpEpisode->name());
ui->m_lpOverview->setText(lpEpisode->overview());
+
+ QTreeWidgetItem* lpItem;
+ for(int x = 0;x < lpEpisode->guestStars().count();x++)
+ {
+ QStringList tmp = lpEpisode->guestStars().at(x).split(",");
+ lpItem = new QTreeWidgetItem(ui->m_lpDetailsActors);
+ lpItem->setText(0, tmp.at(0));
+ if(tmp.count() > 1)
+ lpItem->setText(1, tmp.at(1));
+
+ ui->m_lpDetailsActors->addTopLevelItem(lpItem);
+ }
+ ui->m_lpDetailsActors->resizeColumnToContents(0);
+ ui->m_lpDetailsActors->resizeColumnToContents(1);
}
void cEpisodeDetails::loadImages()
@@ -42,7 +57,7 @@ void cEpisodeDetails::loadImages()
lpDialog->show();
cMovieImage image;
- QPixmap pixmap = image.getImage(m_lpEpisode->stillPath()).scaledToHeight(200);
+ QPixmap pixmap = image.getImage(m_lpEpisode->stillPath()).scaledToHeight(100);
ui->m_lpEpisodeThumb->setPixmap(pixmap);
delete lpDialog;
diff --git a/cepisodedetails.ui b/cepisodedetails.ui
index 1c6b829..fb7dead 100644
--- a/cepisodedetails.ui
+++ b/cepisodedetails.ui
@@ -6,8 +6,8 @@
0
0
- 400
- 300
+ 759
+ 502
@@ -15,29 +15,67 @@
-
-
+
-
-
-
-
+
+
+
+ 12
+ 75
+ true
+
+
+
+ true
-
-
+
-
-
-
-
- 12
- 75
- true
-
-
-
- true
-
-
+
+
-
+
+
+
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
-
+
+
+ Guest Stars
+
+
+
+ -
+
+
+ 2
+
+
+ false
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+
+
+
-
@@ -49,8 +87,8 @@
0
0
- 365
- 245
+ 363
+ 447
@@ -71,6 +109,13 @@
+
+
+ cVerticalLabel
+ QLabel
+
+
+
diff --git a/cimage.cpp b/cimage.cpp
deleted file mode 100644
index 34713d3..0000000
--- a/cimage.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "common.h"
-
-#include "cimage.h"
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-cImage::cImage()
-{
-}
-
-QPixmap cImage::getImage(const QString& szFileName)
-{
- QPixmap pixmap;
-
- QString szPath = rootPath() + QDir::separator() + szFileName;
-
- if(szFileName.isEmpty())
- pixmap.load(rootPath() + QDir::separator() + QDir::separator() + "empty.jpg");
- else
- pixmap.load(szPath);
-
- if(!pixmap.width())
- return(downloadFile(szFileName));
-
- return(pixmap);
-}
-
-QPixmap cImage::downloadFile(const QString& szFileName)
-{
- QPixmap pixmap;
-
- QString szPath = rootPath() + QDir::separator() + szFileName;
-// QString szURL = "http://thetvdb.com/banners/" + szFileName;
- QString szURL = "https://www.thetvdb.com/banners/" + szFileName;
-
- QNetworkAccessManager networkManager;
- QUrl url(szURL);
- QNetworkRequest request(url);
- request.setHeader(QNetworkRequest::ContentTypeHeader, "application/xml");
-
- QNetworkReply* reply = networkManager.get(request);
- QEventLoop loop;
-
- QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
- loop.exec();
-
- QByteArray szData = reply->readAll();
- delete reply;
-
- pixmap.loadFromData(szData);
-
- QDir dir(szPath);
- QFileInfo fileInfo(szPath);
- dir.mkpath(dir.filePath(fileInfo.absolutePath()));
- pixmap.save(szPath);
-
- return(pixmap);
-}
diff --git a/cimage.h b/cimage.h
deleted file mode 100644
index 3605a1f..0000000
--- a/cimage.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef CIMAGE_H
-#define CIMAGE_H
-
-
-#include
-
-
-class cImage
-{
-public:
- cImage();
- QPixmap getImage(const QString& szFileName);
-private:
- QPixmap downloadFile(const QString& szFileName);
-};
-
-#endif // CIMAGE_H
diff --git a/cmainwindow.cpp b/cmainwindow.cpp
index f81aeec..f202d1a 100644
--- a/cmainwindow.cpp
+++ b/cmainwindow.cpp
@@ -10,7 +10,6 @@
#include "cmessagedialog.h"
#include "cedit.h"
#include "cmovieedit.h"
-#include "cimage.h"
#include "cthemoviedbv3.h"
@@ -364,13 +363,71 @@ void cMainWindow::loadSeriesDB()
qint32 iSeasonNumber;
cSeason* lpSeason;
cEpisode* lpEpisode;
+ QString szQuery =
+ " SELECT serie.seriesID seriesID,"
+ " serie.seriesName seriesName,"
+ " serie.originalName originalName,"
+ " serie.backdropPath backdropPath,"
+ " serie.createdBy createdBy,"
+ " serie.homepage homepage,"
+ " serie.lastAired lastAired,"
+ " serie.languages languages,"
+ " serie.networks networks,"
+ " serie.nrEpisodes nrEpisodes,"
+ " serie.nrSeasons nrSeasons,"
+ " serie.originCountries originCountries,"
+ " serie.originalLanguage originalLanguage,"
+ " serie.popularity popularity,"
+ " serie.posterPath posterPath,"
+ " serie.productionCompanies productionCompanies,"
+ " serie.type type,"
+ " serie.voteAverage voteAverage,"
+ " serie.voteCount voteCount,"
+ " serie.overview overview,"
+ " serie.firstAired firstAired,"
+ " serie.cast cast,"
+ " serie.crew crew,"
+ " serie.genre genre,"
+ " serie.status status,"
+ " serie.download download,"
+ " serie.cliffhanger cliffhanger,"
+ " season._id s__id,"
+ " season.airDate s_airDate,"
+ " season.name s_name,"
+ " season.overview s_overview,"
+ " season.id s_id,"
+ " season.posterPath s_posterPath,"
+ " season.seasonNumber s_seasonNumber,"
+ " season.seriesID s_seriesID,"
+ " episode.id e_id,"
+ " episode.name e_name,"
+ " episode.episodeNumber e_episodeNumber,"
+ " episode.airDate e_airDate,"
+ " episode.guestStars e_guestStars,"
+ " episode.overview e_overview,"
+ " episode.productioncode e_productioncode,"
+ " episode.seasonNumber e_seasonNumber,"
+ " episode.seasonID e_seasonID,"
+ " episode.seriesID e_seriesID,"
+ " episode.stillPath e_stillPath,"
+ " episode.voteAverage e_voteAverage,"
+ " episode.voteCount e_voteCount,"
+ " episode.crew e_crew,"
+ " episode.state e_state"
+ " FROM serie"
+ " LEFT JOIN season ON serie.seriesID = season.seriesID"
+ " LEFT JOIN episode ON serie.seriesID = episode.seriesID AND season.seasonNumber = episode.seasonNumber"
+ " ORDER BY serie.seriesName,"
+ " serie.firstAired,"
+ " season.seasonNumber,"
+ " episode.episodeNumber;";
- if(query.exec("SELECT serie.seriesID,serie.seriesName,serie.originalName,serie.backdropPath,serie.createdBy,serie.homepage,serie.lastAired,serie.languages,serie.networks,serie.nrEpisodes,serie.nrSeasons,serie.originCountries,serie.originalLanguage,serie.popularity,serie.posterPath,serie.productionCompanies,serie.type,serie.voteAverage,serie.voteCount,serie.overview,serie.firstAired,serie.cast,serie.crew,serie.genre,serie.status,serie.download,serie.cliffhanger,episode.id eid,episode.name ename,episode.episodeNumber eepisodeNumber,episode.airDate eairDate,episode.guestStars eguestStars,episode.overview eoverview,episode.productioncode eproductioncode,episode.seasonNumber eseasonNumber,episode.seasonID eseasonID,episode.seriesID eseriesID,episode.stillPath estillPath,episode.voteAverage evoteAverage,episode.voteCount evoteCount,episode.crew ecrew,episode.state estate FROM serie LEFT JOIN episode ON serie.seriesID = episode.seriesID ORDER BY serie.seriesName, serie.firstAired, episode.seasonNumber, episode.episodeNumber;"))
+ if(query.exec(szQuery))
{
while(query.next())
{
iSeriesID = query.value("seriesID").toInt();
- iSeasonNumber = query.value("eseasonNumber").toInt();
+ iSeasonNumber = query.value("e_seasonNumber").toInt();
if(iSeriesID != iOldSeriesID)
{
@@ -409,27 +466,33 @@ void cMainWindow::loadSeriesDB()
if(iSeasonNumber != iOldSeasonNumber)
{
- lpSeason = lpSerie->addSeason(query.value("eseasonNumber").toInt());
+ lpSeason = lpSerie->addSeason(query.value("s_seasonNumber").toInt());
+ lpSeason->set_ID(query.value("s__id").toInt());
+ lpSeason->setAirDate(query.value("s_airDate").toString());
+ lpSeason->setName(query.value("s_name").toString());
+ lpSeason->setOverview(query.value("s_overview").toString());
+ lpSeason->setID(query.value("s_id").toInt());
+ lpSeason->setPosterPath(query.value("s_posterPath").toString());
iOldSeasonNumber = iSeasonNumber;
}
lpEpisode = lpSeason->addEpisode(iSeasonNumber);
- lpEpisode->setID(query.value("eid").toInt());
- lpEpisode->setName(query.value("ename").toString());
- lpEpisode->setEpisodeNumber(query.value("eepisodeNumber").toInt());
- lpEpisode->setAirDate(query.value("eairDate").toString());
- lpEpisode->setGuestStars(query.value("eguestStars").toString());
- lpEpisode->setOverview(query.value("eoverview").toString());
- lpEpisode->setProductionCode(query.value("eproductioncode").toString());
- lpEpisode->setSeasonNumber(query.value("eseasonNumber").toInt());
- lpEpisode->setSeasonID(query.value("eseasonID").toInt());
- lpEpisode->setSeriesID(query.value("eseriesID").toInt());
- lpEpisode->setStillPath(query.value("estillPath").toString());
- lpEpisode->setVoteAverage(query.value("evoteAverage").toDouble());
- lpEpisode->setVoteCount(query.value("evoteCount").toInt());
- lpEpisode->setCrew(query.value("ecrew").toString());
- lpEpisode->setState((cEpisode::State)query.value("estate").toInt());
+ lpEpisode->setID(query.value("e_id").toInt());
+ lpEpisode->setName(query.value("e_name").toString());
+ lpEpisode->setEpisodeNumber(query.value("e_episodeNumber").toInt());
+ lpEpisode->setAirDate(query.value("e_airDate").toString());
+ lpEpisode->setGuestStars(query.value("e_guestStars").toString());
+ lpEpisode->setOverview(query.value("e_overview").toString());
+ lpEpisode->setProductionCode(query.value("e_productioncode").toString());
+ lpEpisode->setSeasonNumber(query.value("e_seasonNumber").toInt());
+ lpEpisode->setSeasonID(query.value("e_seasonID").toInt());
+ lpEpisode->setSeriesID(query.value("e_seriesID").toInt());
+ lpEpisode->setStillPath(query.value("e_stillPath").toString());
+ lpEpisode->setVoteAverage(query.value("e_voteAverage").toDouble());
+ lpEpisode->setVoteCount(query.value("e_voteCount").toInt());
+ lpEpisode->setCrew(query.value("e_crew").toString());
+ lpEpisode->setState((cEpisode::State)query.value("e_state").toInt());
}
}
}
diff --git a/cpixmapwidget.cpp b/cpixmapwidget.cpp
new file mode 100644
index 0000000..ba1cc2d
--- /dev/null
+++ b/cpixmapwidget.cpp
@@ -0,0 +1,24 @@
+#include "cpixmapwidget.h"
+
+#include
+
+
+cPixmapWidget::cPixmapWidget(QWidget *parent) : QWidget(parent)
+{
+
+}
+
+void cPixmapWidget::setPixmap(const QPixmap& pixmap)
+{
+ m_pixmap = pixmap;
+}
+
+void cPixmapWidget::paintEvent(QPaintEvent *event)
+{
+ if(!m_pixmap.isNull())
+ {
+ QPainter painter(this);
+ painter.drawPixmap(0, 0, m_pixmap.scaled(width(), height(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
+ }
+ QWidget::paintEvent(event);
+}
diff --git a/cpixmapwidget.h b/cpixmapwidget.h
new file mode 100644
index 0000000..3069788
--- /dev/null
+++ b/cpixmapwidget.h
@@ -0,0 +1,25 @@
+#ifndef CPIXMAPWIDGET_H
+#define CPIXMAPWIDGET_H
+
+
+#include
+#include
+
+
+class cPixmapWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit cPixmapWidget(QWidget *parent = nullptr);
+ void setPixmap(const QPixmap& pixmap);
+
+signals:
+
+public slots:
+
+protected:
+ QPixmap m_pixmap;
+ void paintEvent(QPaintEvent *event);
+};
+
+#endif // CPIXMAPWIDGET_H
diff --git a/cscrollarea.cpp b/cscrollarea.cpp
new file mode 100644
index 0000000..e07a1c6
--- /dev/null
+++ b/cscrollarea.cpp
@@ -0,0 +1,23 @@
+#include "cscrollarea.h"
+
+#include
+
+cScrollArea::cScrollArea(QWidget* parent) :
+ QScrollArea(parent)
+{
+}
+
+void cScrollArea::setPixmap(const QPixmap& pixmap)
+{
+ m_pixmap = pixmap;
+}
+
+void cScrollArea::paintEvent(QPaintEvent *event)
+{
+ if(!m_pixmap.isNull())
+ {
+ QPainter painter(this);
+ painter.drawPixmap(0, 0, m_pixmap);
+ }
+ QScrollArea::paintEvent(event);
+}
diff --git a/cscrollarea.h b/cscrollarea.h
new file mode 100644
index 0000000..bd929c1
--- /dev/null
+++ b/cscrollarea.h
@@ -0,0 +1,19 @@
+#ifndef CSCROLLAREA_H
+#define CSCROLLAREA_H
+
+
+#include
+#include
+
+
+class cScrollArea : public QScrollArea
+{
+public:
+ cScrollArea(QWidget* parent = 0);
+ void setPixmap(const QPixmap& pixmap);
+protected:
+ QPixmap m_pixmap;
+ void paintEvent(QPaintEvent *event);
+};
+
+#endif // CSCROLLAREA_H
diff --git a/cseasondetails.cpp b/cseasondetails.cpp
index 20972a9..757e777 100644
--- a/cseasondetails.cpp
+++ b/cseasondetails.cpp
@@ -6,6 +6,8 @@
#include "cmessageanimatedialog.h"
+#include "cmovieimage.h"
+
#include
@@ -23,6 +25,13 @@ cSeasonDetails::~cSeasonDetails()
void cSeasonDetails::setSeason(cSeason* lpSeason)
{
+ ui->m_lpSeasonName->setText(lpSeason->name());
+ ui->m_lpSeasonOverview->setText(lpSeason->overview());
+
+ cMovieImage image;
+ QPixmap poster = image.getImage(lpSeason->posterPath());
+ ui->m_lpSeasonPoster->setPixmap(poster.scaledToHeight(200));
+
for(int x = 0;x < lpSeason->episodeList().count();x++)
{
cEpisode* lpEpisode = lpSeason->episodeList().at(x);
diff --git a/cseasondetails.ui b/cseasondetails.ui
index 3c3567e..ffa0810 100644
--- a/cseasondetails.ui
+++ b/cseasondetails.ui
@@ -15,11 +15,50 @@
-
-
-
- -1
-
-
+
+
-
+
+
-
+
+
+
+ 12
+ 75
+ true
+
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ -
+
+
+ -1
+
+
+
+
diff --git a/qtMovies.pro b/qtMovies.pro
index eb64f2a..9adfd3a 100644
--- a/qtMovies.pro
+++ b/qtMovies.pro
@@ -21,7 +21,6 @@ SOURCES += main.cpp\
csearch.cpp \
cmessageanimatedialog.cpp \
cedit.cpp \
- cimage.cpp \
cseasondetails.cpp \
cverticallabel.cpp \
cepisodedetails.cpp \
@@ -34,7 +33,9 @@ SOURCES += main.cpp\
cmovieviewitemdelegate.cpp \
common.cpp \
cmovieedit.cpp \
- cmovieimage.cpp
+ cmovieimage.cpp \
+ cscrollarea.cpp \
+ cpixmapwidget.cpp
HEADERS += cmainwindow.h \
cserie.h \
@@ -44,7 +45,6 @@ HEADERS += cmainwindow.h \
csearch.h \
cmessageanimatedialog.h \
cedit.h \
- cimage.h \
cseasondetails.h \
cverticallabel.h \
cepisodedetails.h \
@@ -57,7 +57,9 @@ HEADERS += cmainwindow.h \
cmovieviewitemdelegate.h \
common.h \
cmovieedit.h \
- cmovieimage.h
+ cmovieimage.h \
+ cscrollarea.h \
+ cpixmapwidget.h
FORMS += cmainwindow.ui \
csearch.ui \