Mercurial > minori
diff src/gui/widgets/anime_button.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 | 5d3c9b31aa6e |
children | f81bed4e04ac |
line wrap: on
line diff
--- a/src/gui/widgets/anime_button.cc Sun Jun 23 10:32:09 2024 -0400 +++ b/src/gui/widgets/anime_button.cc Tue Jun 25 11:19:54 2024 -0400 @@ -12,6 +12,8 @@ #include <QVBoxLayout> #include <QWidget> +#include <iostream> + /* This widget is only used on the Seasons page. */ /***********************************\ @@ -26,19 +28,27 @@ *|_________| Synopsis * \***********************************/ -AnimeButton::AnimeButton(QWidget* parent) - : QFrame(parent) - , _info(tr("Aired:\nEpisodes:\nGenres:\nProducers:\nScore:\nPopularity:"), "\n\n\n\n\n", nullptr) - , _synopsis("", nullptr) { +AnimeButton::AnimeButton(QWidget* parent) : QFrame(parent) { setFrameShadow(QFrame::Plain); setFrameShape(QFrame::Box); + QHBoxLayout* ly = new QHBoxLayout(this); - /* XXX does Qt have a "fixed ratio"? */ + _poster.SetClickable(false); _poster.setFixedSize(120, 170); - _poster.SetClickable(false); ly->addWidget(&_poster, 0, Qt::AlignTop); + const std::vector<std::pair<std::string, std::string>> imap = { + {Strings::Translate("Aired:"), ""}, + {Strings::Translate("Episodes:"), ""}, + {Strings::Translate("Genres:"), ""}, + {Strings::Translate("Producers:"), ""}, + {Strings::Translate("Score:"), ""}, + {Strings::Translate("Popularity:"), ""}, + }; + + _info.SetData(imap); + { QWidget* misc_section = new QWidget(this); misc_section->setFixedSize(354, 180); @@ -56,11 +66,7 @@ } misc_layout->addWidget(&_title); - { - QFont fnt(_info.GetLabels()->font()); - fnt.setWeight(QFont::Bold); - _info.GetLabels()->setFont(fnt); - } + _info.SetStyle(TextWidgets::LabelledParagraph::Style::BoldedLabels); _info.setContentsMargins(4, 0, 4, 0); _info.setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); @@ -74,6 +80,7 @@ dummy_layout->setContentsMargins(0, 0, 0, 0); _synopsis.setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); + _synopsis.SetSelectable(false); dummy_layout->addWidget(&_synopsis); misc_layout->addWidget(dummy); } @@ -90,13 +97,18 @@ _poster.SetAnime(anime); _title.setText(Strings::ToQString(anime.GetUserPreferredTitle())); - { - const QLocale& locale = session.config.locale.GetLocale(); - _info.GetData()->setText(locale.toString(anime.GetStartedDate().GetAsQDate(), "dd MMM yyyy") + "\n" + - QString::number(anime.GetEpisodes()) + "\n" + - Strings::ToQString(Strings::Implode(anime.GetGenres(), ", ")) + "\n" + "...\n" + - QString::number(anime.GetAudienceScore()) + "%\n" + "..."); - } + const QLocale& locale = session.config.locale.GetLocale(); - _synopsis.SetText(Strings::ToQString(anime.GetSynopsis())); + const std::vector<std::pair<std::string, std::string>> imap = { + {Strings::Translate("Aired:"), Strings::ToUtf8String(locale.toString(anime.GetStartedDate().GetAsQDate(), "dd MMM yyyy"))}, + {Strings::Translate("Episodes:"), Strings::ToUtf8String(anime.GetEpisodes())}, + {Strings::Translate("Genres:"), Strings::Implode(anime.GetGenres(), ", ")}, + {Strings::Translate("Producers:"), "..."}, + {Strings::Translate("Score:"), Strings::ToUtf8String(anime.GetAudienceScore()) + "%"}, + {Strings::Translate("Popularity:"), "..."}, + }; + + _info.SetData(imap); + + _synopsis.SetText(anime.GetSynopsis()); }