Mercurial > minori
annotate src/gui/widgets/anime_info.cc @ 198:bc1ae1810855
dep/animia: switch from using classes to global functions
the old idea was ok, but sort of hackish; this method doesn't use classes
at all, and this way (especially important!) we can do wayland stuff AND x11
at the same time, which wasn't really possible without stupid workarounds in
the other method
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Sun, 24 Dec 2023 02:59:42 -0500 |
parents | c4ca035c565d |
children | 4d461ef7d424 |
rev | line source |
---|---|
64 | 1 #include "gui/widgets/anime_info.h" |
2 #include "core/anime.h" | |
3 #include "core/strings.h" | |
4 #include "gui/translate/anime.h" | |
5 #include "gui/widgets/text.h" | |
6 #include <QHBoxLayout> | |
7 #include <QTextStream> | |
8 | |
80 | 9 AnimeInfoWidget::AnimeInfoWidget(QWidget* parent) : QWidget(parent) { |
64 | 10 QVBoxLayout* layout = new QVBoxLayout(this); |
11 | |
80 | 12 _title.reset(new TextWidgets::OneLineSection(tr("Alternative titles"), "", this)); |
13 layout->addWidget(_title.get()); | |
14 | |
82
8b65c417c225
*: fix old stuff, make video players and extensions constants
Paper <mrpapersonic@gmail.com>
parents:
81
diff
changeset
|
15 _details.reset(new TextWidgets::LabelledSection(tr("Details"), tr("Type:\nEpisodes:\nStatus:\nSeason:\nGenres:\nScore:"), "", this)); |
80 | 16 layout->addWidget(_details.get()); |
17 | |
82
8b65c417c225
*: fix old stuff, make video players and extensions constants
Paper <mrpapersonic@gmail.com>
parents:
81
diff
changeset
|
18 _synopsis.reset(new TextWidgets::SelectableSection(tr("Synopsis"), "", this)); |
80 | 19 _synopsis->GetParagraph()->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); |
20 layout->addWidget(_synopsis.get()); | |
21 } | |
22 | |
23 AnimeInfoWidget::AnimeInfoWidget(const Anime::Anime& anime, QWidget* parent) : AnimeInfoWidget(parent) { | |
24 SetAnime(anime); | |
25 } | |
26 | |
82
8b65c417c225
*: fix old stuff, make video players and extensions constants
Paper <mrpapersonic@gmail.com>
parents:
81
diff
changeset
|
27 void AnimeInfoWidget::SetAnime(const Anime::Anime& anime) { |
64 | 28 /* alt titles */ |
83 | 29 _title->GetLine()->SetText(Strings::ToQString(Strings::Implode(anime.GetTitleSynonyms(), ", "))); |
64 | 30 |
31 /* details */ | |
32 QString details_data; | |
33 QTextStream details_data_s(&details_data); | |
112
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
34 /* we have to convert ALL of these strings to |
187
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
35 * QString because QTextStream sucks and assumes |
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
36 * Latin1 (on Windows?) |
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
37 */ |
197 | 38 details_data_s << Strings::ToQString(Translate::ToLocalString(anime.GetFormat())) << "\n" |
64 | 39 << anime.GetEpisodes() << "\n" |
197 | 40 << Strings::ToQString(Translate::ToLocalString(anime.GetUserStatus())) << "\n" |
41 << Strings::ToQString(Translate::ToLocalString(anime.GetSeason())) << " " | |
42 << anime.GetAirDate().GetYear().value_or(2000) << "\n" | |
112
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
43 << Strings::ToQString(Strings::Implode(anime.GetGenres(), ", ")) << "\n" |
64 | 44 << anime.GetAudienceScore() << "%"; |
83 | 45 _details->GetParagraph()->SetText(details_data); |
64 | 46 |
83 | 47 _synopsis->GetParagraph()->SetText(Strings::ToQString(anime.GetSynopsis())); |
48 | |
49 updateGeometry(); | |
64 | 50 } |
51 | |
52 #include "gui/widgets/moc_anime_info.cpp" |