diff src/gui/widgets/anime_button.cc @ 254:d14f8e0e40c3

[UNFINISHED] *: update anime button
author Paper <paper@paper.us.eu.org>
date Wed, 07 Feb 2024 07:57:37 -0500
parents b3549da699a6
children fe702c8f161f
line wrap: on
line diff
--- a/src/gui/widgets/anime_button.cc	Tue Feb 06 16:56:32 2024 -0500
+++ b/src/gui/widgets/anime_button.cc	Wed Feb 07 07:57:37 2024 -0500
@@ -33,7 +33,8 @@
 
 	_poster = new Poster(this);
 	_poster->setFixedSize(120, 170);
-	ly->addWidget(_poster);
+	_poster->SetClickable(false);
+	ly->addWidget(_poster, 0, Qt::AlignTop);
 
 	{
 		QWidget* misc_section = new QWidget(this);
@@ -42,18 +43,41 @@
 		QVBoxLayout* misc_layout = new QVBoxLayout(misc_section);
 		misc_layout->setContentsMargins(0, 0, 0, 0);
 
-		_title = new TextWidgets::Line("", misc_section);
+		_title = new QLabel("", misc_section);
+		_title->setAutoFillBackground(true);
+		_title->setContentsMargins(4, 4, 4, 4);
+		_title->setStyleSheet("background-color: rgba(0, 245, 25, 25);");
+		{
+			QFont fnt(_title->font());
+			fnt.setWeight(QFont::Bold);
+			_title->setFont(fnt);
+		}
 		misc_layout->addWidget(_title);
 
 		/* need to make a separate "labelled paragraph" for this */
-		_info = new TextWidgets::LabelledParagraph(tr("Aired:\nEpisodes:\nProducers:\nScore:\nPopularity:"), "\n\n\n\n", misc_section);
+		_info = new TextWidgets::LabelledParagraph(tr("Aired:\nEpisodes:\nGenres:\nProducers:\nScore:\nPopularity:"), "\n\n\n\n", misc_section);
+		{
+			QFont fnt(_info->GetLabels()->font());
+			fnt.setWeight(QFont::Bold);
+			_info->GetLabels()->setFont(fnt);
+		}
+		_info->setContentsMargins(4, 0, 4, 0);
 		_info->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
 		misc_layout->addWidget(_info);
 
-		_synopsis = new ElidedLabel("", misc_section);
-		misc_layout->addWidget(_synopsis);
+		QWidget* dummy = new QWidget(misc_section);
+		dummy->setContentsMargins(4, 0, 4, 0);
+		QVBoxLayout* dummy_layout = new QVBoxLayout(dummy);
+		dummy_layout->setSpacing(0);
+		// dummy_layout->setContentsMargins(0, 0, 0, 0);
+		dummy_layout->setContentsMargins(0, 0, 0, 0);
 
-		ly->addWidget(misc_section);
+		_synopsis = new ElidedLabel("", dummy);
+		_synopsis->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+		dummy_layout->addWidget(_synopsis);
+		misc_layout->addWidget(dummy);
+
+		ly->addWidget(misc_section, 0, Qt::AlignTop);
 	}
 }
 
@@ -63,13 +87,14 @@
 
 void AnimeButton::SetAnime(const Anime::Anime& anime) {
 	_poster->SetAnime(anime);
-	_title->SetText(Strings::ToQString(anime.GetUserPreferredTitle()));
+	_title->setText(Strings::ToQString(anime.GetUserPreferredTitle()));
 
 	{
 		const QLocale& locale = session.config.locale.GetLocale();
 		_info->GetParagraph()->SetText(
 			locale.toString(anime.GetAirDate().GetAsQDate(), "dd MMM yyyy") + "\n" +
 			QString::number(anime.GetEpisodes()) + "\n" +
+			Strings::ToQString(Strings::Implode(anime.GetGenres(), ", ")) + "\n" +
 			"...\n" +
 			QString::number(anime.GetAudienceScore()) + "%\n" +
 			"..."