comparison include/gui/pages/now_playing.h @ 348:6b0768158dcd

text: redesign almost every widget i.e. Paragraph is now a QLabel, etc etc, some things will probably break, idc
author Paper <paper@paper.us.eu.org>
date Tue, 25 Jun 2024 11:19:54 -0400
parents 3ec7804abf17
children
comparison
equal deleted inserted replaced
347:a0aa8c8c4307 348:6b0768158dcd
1 #ifndef MINORI_GUI_PAGES_NOW_PLAYING_H_ 1 #ifndef MINORI_GUI_PAGES_NOW_PLAYING_H_
2 #define MINORI_GUI_PAGES_NOW_PLAYING_H_ 2 #define MINORI_GUI_PAGES_NOW_PLAYING_H_
3 3
4 #include "gui/widgets/anime_info.h" 4 #include "gui/widgets/anime_info.h"
5 #include "gui/widgets/poster.h" 5 #include "gui/widgets/poster.h"
6 #include "gui/widgets/sidebar.h"
6 #include "gui/widgets/text.h" 7 #include "gui/widgets/text.h"
7 8
8 #include <QFrame> 9 #include <QFrame>
10 #include <QStackedWidget>
11
9 #include <memory> 12 #include <memory>
10 #include <unordered_map> 13 #include <unordered_map>
11 14
12 class QStackedWidget;
13 15
14 namespace Anime { 16 namespace Anime {
15 class Anime; 17 class Anime;
16 } 18 }
17 19
18 namespace anitomy { 20 namespace anitomy {
19 class Elements; 21 class Elements;
20 } 22 }
21 23
24 /* -------------------------------------------------------------- */
25 /* separate pages */
26
22 namespace NowPlayingPages { 27 namespace NowPlayingPages {
23 28
24 class Default : public QWidget { 29 class Default : public QWidget {
25 Q_OBJECT 30 Q_OBJECT
26 31
27 public: 32 public:
28 Default(QWidget* parent = nullptr); 33 Default(QWidget* parent = nullptr);
34
35 private:
36 TextWidgets::Title title_;
29 }; 37 };
30 38
31 class Playing : public QWidget { 39 class Playing : public QWidget {
32 Q_OBJECT 40 Q_OBJECT
33 41
37 int GetPlayingAnime(); 45 int GetPlayingAnime();
38 46
39 private: 47 private:
40 int _id = 0; 48 int _id = 0;
41 int _episode = 0; 49 int _episode = 0;
42 std::unique_ptr<QWidget> _main = nullptr; 50
43 std::unique_ptr<TextWidgets::Title> _title = nullptr; 51 QWidget _main;
44 std::unique_ptr<AnimeInfoWidget> _info = nullptr; 52 TextWidgets::Title _title;
45 std::unique_ptr<QWidget> _sidebar = nullptr; 53 AnimeInfoWidget _info;
46 std::unique_ptr<Poster> _poster = nullptr; 54
55 QWidget _sidebar;
56 Poster _poster;
47 }; 57 };
48 58
49 } // namespace NowPlayingPages 59 } // namespace NowPlayingPages
60
61 /* -------------------------------------------------------------- */
62 /* the full page */
50 63
51 class NowPlayingPage final : public QFrame { 64 class NowPlayingPage final : public QFrame {
52 Q_OBJECT 65 Q_OBJECT
53 66
54 public: 67 public:
56 void SetDefault(); 69 void SetDefault();
57 void SetPlaying(const Anime::Anime& anime, const anitomy::Elements& episodes); 70 void SetPlaying(const Anime::Anime& anime, const anitomy::Elements& episodes);
58 int GetPlayingId(); 71 int GetPlayingId();
59 72
60 private: 73 private:
61 QStackedWidget* stack; 74 enum class Subpages {
75 Default = 0,
76 Playing = 1,
77 };
78
79 QStackedWidget stack_;
80
81 NowPlayingPages::Default default_;
82 NowPlayingPages::Playing playing_;
62 }; 83 };
63 84
64 #endif // MINORI_GUI_PAGES_NOW_PLAYING_H_ 85 #endif // MINORI_GUI_PAGES_NOW_PLAYING_H_