Mercurial > minori
annotate include/gui/pages/now_playing.h @ 377:1b0b8e746d83 default tip
CI/windows: stupid msys2
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 12:40:25 -0400 |
parents | abd956418fe9 |
children |
rev | line source |
---|---|
261
3ec7804abf17
include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents:
258
diff
changeset
|
1 #ifndef MINORI_GUI_PAGES_NOW_PLAYING_H_ |
3ec7804abf17
include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents:
258
diff
changeset
|
2 #define MINORI_GUI_PAGES_NOW_PLAYING_H_ |
85 | 3 |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
4 #include "gui/widgets/anime_info.h" |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
5 #include "gui/widgets/poster.h" |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
6 #include "gui/widgets/sidebar.h" |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
7 #include "gui/widgets/text.h" |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
8 |
64 | 9 #include <QFrame> |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
10 #include <QStackedWidget> |
375
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
11 #include <QTimer> |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
12 |
258 | 13 #include <memory> |
80 | 14 #include <unordered_map> |
2 | 15 |
85 | 16 |
83 | 17 namespace Anime { |
18 class Anime; | |
19 } | |
64 | 20 |
154 | 21 namespace anitomy { |
22 class Elements; | |
23 } | |
24 | |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
25 /* -------------------------------------------------------------- */ |
375
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
26 /* this is kinda ugly. */ |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
27 |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
28 namespace NowPlayingPages { |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
29 |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
30 class Default : public QWidget { |
258 | 31 Q_OBJECT |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
32 |
258 | 33 public: |
34 Default(QWidget* parent = nullptr); | |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
35 |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
36 private: |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
37 TextWidgets::Title title_; |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
38 }; |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
39 |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
40 class Playing : public QWidget { |
258 | 41 Q_OBJECT |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
42 |
258 | 43 public: |
44 Playing(QWidget* parent = nullptr); | |
45 void SetPlayingAnime(const Anime::Anime& anime, const anitomy::Elements& info); | |
46 int GetPlayingAnime(); | |
375
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
47 int GetPlayingEpisode(); |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
48 |
258 | 49 private: |
50 int _id = 0; | |
51 int _episode = 0; | |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
52 |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
53 QWidget _main; |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
54 TextWidgets::Title _title; |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
55 AnimeInfoWidget _info; |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
56 |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
57 QWidget _sidebar; |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
58 Poster _poster; |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
59 }; |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
60 |
258 | 61 } // namespace NowPlayingPages |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
154
diff
changeset
|
62 |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
63 /* -------------------------------------------------------------- */ |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
64 /* the full page */ |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
65 |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
85
diff
changeset
|
66 class NowPlayingPage final : public QFrame { |
258 | 67 Q_OBJECT |
7 | 68 |
258 | 69 public: |
70 NowPlayingPage(QWidget* parent = nullptr); | |
71 void SetDefault(); | |
72 void SetPlaying(const Anime::Anime& anime, const anitomy::Elements& episodes); | |
73 int GetPlayingId(); | |
64 | 74 |
375
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
75 private slots: |
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
76 void TimerDone(); |
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
77 |
258 | 78 private: |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
79 enum class Subpages { |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
80 Default = 0, |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
81 Playing = 1, |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
82 }; |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
83 |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
84 QStackedWidget stack_; |
375
abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
Paper <paper@tflc.us>
parents:
348
diff
changeset
|
85 QTimer timer_; |
348
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
86 |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
87 NowPlayingPages::Default default_; |
6b0768158dcd
text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents:
261
diff
changeset
|
88 NowPlayingPages::Playing playing_; |
2 | 89 }; |
90 | |
261
3ec7804abf17
include: make header guards more sane
Paper <paper@paper.us.eu.org>
parents:
258
diff
changeset
|
91 #endif // MINORI_GUI_PAGES_NOW_PLAYING_H_ |