Mercurial > minori
comparison include/gui/widgets/poster.h @ 295:b82841e76e79
*: better support on Windows
things now look much better in dark mode
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Sun, 12 May 2024 20:24:09 -0400 |
parents | 9a88e1725fd2 |
children | b1f625b0227c |
comparison
equal
deleted
inserted
replaced
294:99cbc51433e4 | 295:b82841e76e79 |
---|---|
4 #include <QImage> | 4 #include <QImage> |
5 | 5 |
6 #include "gui/widgets/clickable_label.h" | 6 #include "gui/widgets/clickable_label.h" |
7 #include "core/http.h" | 7 #include "core/http.h" |
8 | 8 |
9 class QWidget; | |
10 namespace Anime { | 9 namespace Anime { |
11 class Anime; | 10 class Anime; |
12 } | 11 } |
13 | 12 |
14 class Poster final : public QFrame { | 13 class Poster final : public QFrame { |
15 Q_OBJECT | 14 Q_OBJECT |
16 | 15 |
17 public: | 16 public: |
18 Poster(QWidget* parent = nullptr); | 17 Poster(QWidget* parent = nullptr); |
19 Poster(const Anime::Anime& anime, QWidget* parent = nullptr); | 18 Poster(const Anime::Anime& anime, QWidget* parent = nullptr); |
19 ~Poster(); | |
20 void SetAnime(const Anime::Anime& anime); | 20 void SetAnime(const Anime::Anime& anime); |
21 void SetClickable(bool clickable); | 21 void SetClickable(bool clickable); |
22 | 22 |
23 protected: | 23 protected: |
24 void showEvent(QShowEvent*) override; | |
24 void resizeEvent(QResizeEvent*) override; | 25 void resizeEvent(QResizeEvent*) override; |
25 void ImageDownloadFinished(const QByteArray& arr); | 26 void ImageDownloadFinished(const QByteArray& arr); |
26 void RenderToLabel(); | 27 void RenderToLabel(); |
28 void DownloadPoster(); | |
27 | 29 |
28 private: | 30 private: |
29 HTTP::RequestThread get_thread_; | 31 /* stored as a pointer to prevent blocking */ |
32 HTTP::RequestThread* get_thread_; | |
30 | 33 |
31 QImage img_; | 34 QImage img_; |
32 QString service_url_; | 35 QString service_url_; |
36 std::string poster_url_; | |
33 ClickableLabel label_; | 37 ClickableLabel label_; |
38 | |
34 bool clickable_ = true; | 39 bool clickable_ = true; |
40 bool need_refresh_ = false; | |
35 }; | 41 }; |
36 | 42 |
37 #endif // MINORI_GUI_WIDGETS_POSTER_H_ | 43 #endif // MINORI_GUI_WIDGETS_POSTER_H_ |