Skip to content

Commit 6b1f6fc

Browse files
committed
item: add image property for default image
1 parent 1563de1 commit 6b1f6fc

File tree

6 files changed

+52
-0
lines changed

6 files changed

+52
-0
lines changed

traktepisode.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ void TraktEpisode::setSeason(TraktSeason *season)
114114
emit seasonChanged();
115115
}
116116

117+
TraktImages *TraktEpisode::image() const
118+
{
119+
return m_images->screenshot();
120+
}
121+
117122
void TraktEpisode::parse(const QVariantMap &data)
118123
{
119124
setTitle(data.value("title").toString());
@@ -132,3 +137,8 @@ QString TraktEpisode::itemUrl() const
132137
{
133138
return QString("/shows/%1/seasons/%2/episodes/%3").arg(m_season->show()->ids()->trakt()).arg(m_season->number()).arg(number());
134139
}
140+
141+
void TraktEpisode::connectImageChanged(TraktImageSet *images) const
142+
{
143+
connect(images, SIGNAL(screenshotChanged()), this, SIGNAL(imageChanged()));
144+
}

traktepisode.h

+3
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ class TraktEpisode : public TraktItem
4848
TraktSeason *season() const;
4949
void setSeason(TraktSeason *season);
5050

51+
virtual TraktImages *image() const Q_DECL_OVERRIDE;
52+
5153
void parse(const QVariantMap &data) Q_DECL_OVERRIDE;
5254

5355
signals:
@@ -62,6 +64,7 @@ class TraktEpisode : public TraktItem
6264

6365
protected:
6466
QString itemUrl() const Q_DECL_OVERRIDE;
67+
virtual void connectImageChanged(TraktImageSet *images) const Q_DECL_OVERRIDE;
6568

6669
private:
6770
int m_number;

traktitem.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,25 @@ TraktImageSet *TraktItem::images() const
4242

4343
void TraktItem::setImages(TraktImageSet *images)
4444
{
45+
if (m_images) {
46+
disconnect(m_images, 0, this, 0);
47+
}
4548
m_images = images;
49+
if (m_images) {
50+
connectImageChanged(m_images);
51+
}
4652
emit imagesChanged();
4753
}
4854

55+
TraktImages *TraktItem::image() const
56+
{
57+
if (m_images) {
58+
return m_images->poster();
59+
}
60+
61+
return 0;
62+
}
63+
4964
bool TraktItem::loaded() const
5065
{
5166
return m_loaded;
@@ -75,3 +90,8 @@ void TraktItem::onFullyLoaded(TraktReply *reply)
7590
reply->deleteLater();
7691
parse(reply->asMap());
7792
}
93+
94+
void TraktItem::connectImageChanged(TraktImageSet *images) const
95+
{
96+
connect(images, SIGNAL(posterChanged()), this, SIGNAL(imageChanged()));
97+
}

traktitem.h

+5
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class TraktItem : public QObject
1414
Q_PROPERTY(TraktIds *ids READ ids WRITE setIds NOTIFY idsChanged)
1515
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
1616
Q_PROPERTY(TraktImageSet *images READ images WRITE setImages NOTIFY imagesChanged)
17+
Q_PROPERTY(TraktImages *image READ image NOTIFY imageChanged)
1718
Q_PROPERTY(bool loaded READ loaded NOTIFY loadedChanged)
1819
public:
1920
explicit TraktItem(QObject *parent = 0);
@@ -27,6 +28,8 @@ class TraktItem : public QObject
2728
virtual TraktImageSet *images() const;
2829
virtual void setImages(TraktImageSet *images);
2930

31+
virtual TraktImages *image() const;
32+
3033
bool loaded() const;
3134

3235
virtual void parse(const QVariantMap &data) = 0;
@@ -36,10 +39,12 @@ class TraktItem : public QObject
3639
void idsChanged();
3740
void titleChanged();
3841
void imagesChanged();
42+
void imageChanged();
3943
void loadedChanged();
4044

4145
protected:
4246
virtual QString itemUrl() const = 0;
47+
virtual void connectImageChanged(TraktImageSet *images) const;
4348
void setLoaded(bool loaded);
4449

4550
TraktIds *m_ids;

traktperson.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ void TraktPerson::setTitle(const QString &title)
128128
Q_UNUSED(title)
129129
}
130130

131+
TraktImages *TraktPerson::image() const
132+
{
133+
return m_images->headshot();
134+
}
135+
131136
void TraktPerson::parse(const QVariantMap &data)
132137
{
133138
setBiography(data.value("biography").toString());
@@ -143,3 +148,8 @@ QString TraktPerson::itemUrl() const
143148
{
144149
return QString("/people/%1").arg(ids()->trakt());
145150
}
151+
152+
void TraktPerson::connectImageChanged(TraktImageSet *images) const
153+
{
154+
connect(images, SIGNAL(headshotChanged()), this, SIGNAL(imageChanged()));
155+
}

traktperson.h

+4
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ class TraktPerson : public TraktItem
5252
QString title() const Q_DECL_OVERRIDE;
5353
void setTitle(const QString &title) Q_DECL_OVERRIDE;
5454

55+
virtual TraktImages *image() const Q_DECL_OVERRIDE;
56+
5557
void parse(const QVariantMap &data) Q_DECL_OVERRIDE;
5658

5759
signals:
@@ -67,6 +69,8 @@ class TraktPerson : public TraktItem
6769

6870
protected:
6971
QString itemUrl() const Q_DECL_OVERRIDE;
72+
virtual void connectImageChanged(TraktImageSet *images) const Q_DECL_OVERRIDE;
73+
7074

7175
private:
7276
QString m_name;

0 commit comments

Comments
 (0)