comparison src/gui/pages/now_playing.cc @ 154:d43d68408d3c

dep/animia: fix XnuFdTools also we use anitomy directly now. HG Enter commit message. Lines beginning with 'HG:' are removed.
author Paper <mrpapersonic@gmail.com>
date Wed, 15 Nov 2023 14:14:17 -0500
parents 6d8da6e64d61
children bc8d2ccff09c
comparison
equal deleted inserted replaced
153:bd439dd6ffc5 154:d43d68408d3c
8 #include <QStackedWidget> 8 #include <QStackedWidget>
9 #include <QHBoxLayout> 9 #include <QHBoxLayout>
10 #include <QVBoxLayout> 10 #include <QVBoxLayout>
11 #include <QWidget> 11 #include <QWidget>
12 12
13 /* WARNING: HACKY STUFF HERE 13 #include "anitomy/anitomy.h"
14 14
15 The Now Playing page is designed to "switch" between these two sub-pages,
16 using a QStackedWidget. This *could* be the best way to do this, but this
17 feels very very stupid and I really don't like it */
18 namespace NowPlayingPages { 15 namespace NowPlayingPages {
19 16
20 class Default : public QWidget { 17 class Default : public QWidget {
21 Q_OBJECT 18 Q_OBJECT
22 19
27 class Playing : public QWidget { 24 class Playing : public QWidget {
28 Q_OBJECT 25 Q_OBJECT
29 26
30 public: 27 public:
31 Playing(QWidget* parent = nullptr); 28 Playing(QWidget* parent = nullptr);
32 void SetPlayingAnime(const Anime::Anime& anime, const std::unordered_map<std::string, std::string>& info); 29 void SetPlayingAnime(const Anime::Anime& anime, const anitomy::Elements& info);
33 int GetPlayingAnime(); 30 int GetPlayingAnime();
34 31
35 private: 32 private:
36 int _id = 0; 33 int _id = 0;
37 int _episode = 0; 34 int _episode = 0;
87 84
88 int Playing::GetPlayingAnime() { 85 int Playing::GetPlayingAnime() {
89 return _id; 86 return _id;
90 } 87 }
91 88
92 void Playing::SetPlayingAnime(const Anime::Anime& anime, const std::unordered_map<std::string, std::string>& info) { 89 void Playing::SetPlayingAnime(const Anime::Anime& anime, const anitomy::Elements& info) {
93 if (_id == anime.GetId() && std::to_string(_episode) == info.at("episode")) 90 if (_id == anime.GetId() && _episode == Strings::ToInt(Strings::ToUtf8String(info.get(anitomy::kElementEpisodeNumber))))
94 return; 91 return;
95 _id = anime.GetId(); 92 _id = anime.GetId();
96 _episode = Strings::ToInt(info.at("episode")); 93 _episode = Strings::ToInt(Strings::ToUtf8String(info.get(anitomy::kElementEpisodeNumber)));
97 _title->SetText(Strings::ToQString(anime.GetUserPreferredTitle())); 94 _title->SetText(Strings::ToQString(anime.GetUserPreferredTitle()));
98 _info->SetAnime(anime); 95 _info->SetAnime(anime);
99 _poster->SetAnime(anime); 96 _poster->SetAnime(anime);
100 97
101 updateGeometry(); 98 updateGeometry();
124 121
125 int NowPlayingPage::GetPlayingId() { 122 int NowPlayingPage::GetPlayingId() {
126 return reinterpret_cast<NowPlayingPages::Playing*>(stack->widget(1))->GetPlayingAnime(); 123 return reinterpret_cast<NowPlayingPages::Playing*>(stack->widget(1))->GetPlayingAnime();
127 } 124 }
128 125
129 void NowPlayingPage::SetPlaying(const Anime::Anime& anime, const std::unordered_map<std::string, std::string>& info) { 126 void NowPlayingPage::SetPlaying(const Anime::Anime& anime, const anitomy::Elements& info) {
130 reinterpret_cast<NowPlayingPages::Playing*>(stack->widget(1))->SetPlayingAnime(anime, info); 127 reinterpret_cast<NowPlayingPages::Playing*>(stack->widget(1))->SetPlayingAnime(anime, info);
131 stack->setCurrentIndex(1); 128 stack->setCurrentIndex(1);
132 updateGeometry(); 129 updateGeometry();
133 } 130 }
134 131