Mercurial > minori
annotate src/gui/widgets/anime_info.cc @ 187:9613d72b097e
*: multiple performance improvements
like marking `static const` when it makes sense...
date: change old stupid heap-based method to a structure which should
make copying the thing actually make a copy.
also many performance-based changes, like removing the std::tie
dependency and forward-declaring nlohmann json
*: replace every instance of QString::fromUtf8 to Strings::ToQString.
the main difference is that our function will always convert exactly
what is in the string, while some other times it would only convert
up to the nearest NUL byte
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Wed, 06 Dec 2023 13:43:54 -0500 |
| parents | 80f49f623d30 |
| children | c4ca035c565d |
| 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 */ |
|
112
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
38 details_data_s << Strings::ToQString(Translate::ToString(anime.GetFormat())) << "\n" |
| 64 | 39 << anime.GetEpisodes() << "\n" |
|
112
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
40 << Strings::ToQString(Translate::ToString(anime.GetUserStatus())) << "\n" |
|
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
41 << Strings::ToQString(Translate::ToString(anime.GetSeason())) << " " |
|
80f49f623d30
locale: allow switching locales without restarting
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
42 << anime.GetAirDate().GetYear() << "\n" |
|
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" |
