Mercurial > minori
annotate src/gui/pages/now_playing.cc @ 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 | b82841e76e79 | 
| children | ea3a74ed2ef9 | 
| rev | line source | 
|---|---|
| 9 | 1 #include "gui/pages/now_playing.h" | 
| 64 | 2 #include "core/anime_db.h" | 
| 82 
8b65c417c225
*: fix old stuff, make video players and extensions constants
 Paper <mrpapersonic@gmail.com> parents: 
81diff
changeset | 3 #include "core/strings.h" | 
| 64 | 4 #include "gui/widgets/anime_info.h" | 
| 258 | 5 #include "gui/widgets/poster.h" | 
| 64 | 6 #include "gui/widgets/text.h" | 
| 178 
bc8d2ccff09c
win32/dark: use existing STL classes for dwmapi
 Paper <mrpapersonic@gmail.com> parents: 
154diff
changeset | 7 | 
| 258 | 8 #include <QHBoxLayout> | 
| 64 | 9 #include <QLabel> | 
| 10 #include <QStackedWidget> | |
| 11 #include <QVBoxLayout> | |
| 12 #include <QWidget> | |
| 13 | |
| 154 | 14 #include "anitomy/anitomy.h" | 
| 15 | |
| 64 | 16 namespace NowPlayingPages { | 
| 17 | |
| 18 Default::Default(QWidget* parent) : QWidget(parent) { | |
| 19 QVBoxLayout* layout = new QVBoxLayout(this); | |
| 20 layout->setContentsMargins(0, 0, 0, 0); | |
| 2 | 21 | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 22 title_.SetText(Strings::Translate("Now Playing")); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 23 layout->addWidget(&title_); | 
| 80 | 24 | 
| 64 | 25 layout->addStretch(); | 
| 26 } | |
| 27 | |
| 28 Playing::Playing(QWidget* parent) : QWidget(parent) { | |
| 66 
6481c5aed3e1
posters: add poster widget...
 Paper <mrpapersonic@gmail.com> parents: 
64diff
changeset | 29 QHBoxLayout* layout = new QHBoxLayout(this); | 
| 68 
2417121d894e
*: normalize usage of layouts
 Paper <mrpapersonic@gmail.com> parents: 
66diff
changeset | 30 | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 31 _main.setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); | 
| 83 | 32 | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 33 QVBoxLayout* main_layout = new QVBoxLayout(&_main); | 
| 83 | 34 main_layout->setContentsMargins(0, 0, 0, 0); | 
| 35 | |
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 36 main_layout->addWidget(&_title); | 
| 83 | 37 | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 38 _info.setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 39 _info.layout()->setContentsMargins(0, 0, 0, 0); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 40 main_layout->addWidget(&_info); | 
| 80 | 41 | 
| 83 | 42 /* "sidebar", includes... just the anime image :) */ | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 43 QVBoxLayout* sidebar_layout = new QVBoxLayout(&_sidebar); | 
| 83 | 44 sidebar_layout->setContentsMargins(0, 0, 0, 0); | 
| 80 | 45 | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 46 sidebar_layout->addWidget(&_poster); | 
| 83 | 47 | 
| 48 sidebar_layout->addStretch(); | |
| 49 | |
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 50 layout->addWidget(&_sidebar); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 51 layout->addWidget(&_main); | 
| 83 | 52 layout->setSpacing(10); | 
| 64 | 53 layout->setContentsMargins(0, 0, 0, 0); | 
| 54 } | |
| 55 | |
| 69 | 56 int Playing::GetPlayingAnime() { | 
| 57 return _id; | |
| 58 } | |
| 59 | |
| 154 | 60 void Playing::SetPlayingAnime(const Anime::Anime& anime, const anitomy::Elements& info) { | 
| 258 | 61 if (_id == anime.GetId() | 
| 62 && _episode == Strings::ToInt(Strings::ToUtf8String(info.get(anitomy::kElementEpisodeNumber)))) | |
| 79 | 63 return; | 
| 83 | 64 _id = anime.GetId(); | 
| 154 | 65 _episode = Strings::ToInt(Strings::ToUtf8String(info.get(anitomy::kElementEpisodeNumber))); | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 66 _title.SetText(anime.GetUserPreferredTitle()); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 67 _info.SetAnime(anime); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 68 _poster.SetAnime(anime); | 
| 83 | 69 | 
| 70 updateGeometry(); | |
| 66 
6481c5aed3e1
posters: add poster widget...
 Paper <mrpapersonic@gmail.com> parents: 
64diff
changeset | 71 } | 
| 
6481c5aed3e1
posters: add poster widget...
 Paper <mrpapersonic@gmail.com> parents: 
64diff
changeset | 72 | 
| 64 | 73 } // namespace NowPlayingPages | 
| 74 | |
| 75 NowPlayingPage::NowPlayingPage(QWidget* parent) : QFrame(parent) { | |
| 295 | 76 setBackgroundRole(QPalette::Base); | 
| 64 | 77 QVBoxLayout* layout = new QVBoxLayout(this); | 
| 78 | |
| 79 setFrameShape(QFrame::Box); | |
| 80 setFrameShadow(QFrame::Sunken); | |
| 81 setAutoFillBackground(true); | |
| 82 | |
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 83 stack_.addWidget(&default_); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 84 stack_.addWidget(&playing_); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 85 layout->addWidget(&stack_); | 
| 64 | 86 | 
| 87 SetDefault(); | |
| 88 } | |
| 89 | |
| 90 void NowPlayingPage::SetDefault() { | |
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 91 stack_.setCurrentIndex(static_cast<int>(Subpages::Default)); | 
| 64 | 92 } | 
| 93 | |
| 69 | 94 int NowPlayingPage::GetPlayingId() { | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 95 return playing_.GetPlayingAnime(); | 
| 69 | 96 } | 
| 97 | |
| 154 | 98 void NowPlayingPage::SetPlaying(const Anime::Anime& anime, const anitomy::Elements& info) { | 
| 348 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 99 playing_.SetPlayingAnime(anime, info); | 
| 
6b0768158dcd
text: redesign almost every widget
 Paper <paper@paper.us.eu.org> parents: 
295diff
changeset | 100 stack_.setCurrentIndex(static_cast<int>(Subpages::Playing)); | 
| 83 | 101 updateGeometry(); | 
| 2 | 102 } | 
