Mercurial > minori
annotate 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 |
rev | line source |
---|---|
261
3ec7804abf17
include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents:
254
diff
changeset
|
1 #ifndef MINORI_GUI_WIDGETS_POSTER_H_ |
3ec7804abf17
include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents:
254
diff
changeset
|
2 #define MINORI_GUI_WIDGETS_POSTER_H_ |
66 | 3 #include <QFrame> |
4 #include <QImage> | |
5 | |
273
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
6 #include "gui/widgets/clickable_label.h" |
291 | 7 #include "core/http.h" |
273
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
8 |
83 | 9 namespace Anime { |
10 class Anime; | |
11 } | |
66 | 12 |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
13 class Poster final : public QFrame { |
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
14 Q_OBJECT |
66 | 15 |
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
16 public: |
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
17 Poster(QWidget* parent = nullptr); |
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
18 Poster(const Anime::Anime& anime, QWidget* parent = nullptr); |
295 | 19 ~Poster(); |
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
20 void SetAnime(const Anime::Anime& anime); |
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
21 void SetClickable(bool clickable); |
66 | 22 |
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
23 protected: |
295 | 24 void showEvent(QShowEvent*) override; |
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
25 void resizeEvent(QResizeEvent*) override; |
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
26 void ImageDownloadFinished(const QByteArray& arr); |
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
27 void RenderToLabel(); |
295 | 28 void DownloadPoster(); |
66 | 29 |
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
95
diff
changeset
|
30 private: |
295 | 31 /* stored as a pointer to prevent blocking */ |
32 HTTP::RequestThread* get_thread_; | |
291 | 33 |
273
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
34 QImage img_; |
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
35 QString service_url_; |
295 | 36 std::string poster_url_; |
273
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
37 ClickableLabel label_; |
295 | 38 |
273
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
39 bool clickable_ = true; |
295 | 40 bool need_refresh_ = false; |
66 | 41 }; |
42 | |
273
f31305b9f60a
*: various code safety changes
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
43 #endif // MINORI_GUI_WIDGETS_POSTER_H_ |