Mercurial > minori
diff src/gui/pages/seasons.cc @ 370:ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 10:22:04 -0400 |
parents | f81bed4e04ac |
children |
line wrap: on
line diff
--- a/src/gui/pages/seasons.cc Fri Jul 25 10:16:02 2025 -0400 +++ b/src/gui/pages/seasons.cc Fri Jul 25 10:22:04 2025 -0400 @@ -2,8 +2,8 @@ #include "core/anime_db.h" #include "core/strings.h" +#include "gui/translate/anime.h" #include "gui/widgets/anime_button.h" -#include "gui/translate/anime.h" #include "services/services.h" #include <QDate> @@ -17,16 +17,19 @@ #include <iostream> -SeasonsPageSearchThread::SeasonsPageSearchThread(QObject* parent) : QThread(parent) { +SeasonsPageSearchThread::SeasonsPageSearchThread(QObject *parent) : QThread(parent) +{ } -void SeasonsPageSearchThread::AddToQueue(Anime::Season season) { +void SeasonsPageSearchThread::AddToQueue(Anime::Season season) +{ queue_mutex_.lock(); queue_.push(season); queue_mutex_.unlock(); } -void SeasonsPageSearchThread::run() { +void SeasonsPageSearchThread::run() +{ queue_mutex_.lock(); while (!queue_.empty() && !isInterruptionRequested()) { @@ -51,11 +54,13 @@ /* ------------------------------------------------------------------------------------- */ -static constexpr Date::Year GetClosestDecade(Date::Year year) { +static constexpr Date::Year GetClosestDecade(Date::Year year) +{ return year - (year % 10); } -void SeasonsPage::Refresh() { +void SeasonsPage::Refresh() +{ setUpdatesEnabled(false); if (!buttons) @@ -63,9 +68,9 @@ buttons->clear(); - for (const auto& id : Anime::db.GetAllAnimeForSeason(season_)) { - QListWidgetItem* item = new QListWidgetItem; - AnimeButton* button = new AnimeButton(this); + for (const auto &id : Anime::db.GetAllAnimeForSeason(season_)) { + QListWidgetItem *item = new QListWidgetItem; + AnimeButton *button = new AnimeButton(this); button->SetAnime(Anime::db.items[id]); item->setSizeHint(QSize(500, 200)); buttons->addItem(item); @@ -77,22 +82,24 @@ setUpdatesEnabled(true); } -void SeasonsPage::SetSeason(Anime::Season season) { +void SeasonsPage::SetSeason(Anime::Season season) +{ season_ = season; Refresh(); } -SeasonsPage::SeasonsPage(QWidget* parent) : QFrame(parent) { +SeasonsPage::SeasonsPage(QWidget *parent) : QFrame(parent) +{ setBackgroundRole(QPalette::Base); setFrameShape(QFrame::Box); setFrameShadow(QFrame::Sunken); - QVBoxLayout* full_layout = new QVBoxLayout(this); + QVBoxLayout *full_layout = new QVBoxLayout(this); { /* Toolbar */ - QToolBar* toolbar = new QToolBar(this); + QToolBar *toolbar = new QToolBar(this); toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); toolbar->setIconSize(QSize(16, 16)); toolbar->setMovable(false); @@ -104,17 +111,15 @@ const Date::Year year_before_collapse = GetClosestDecade(current_season.year) - 10; /* year -> menu for that year */ - std::map<Date::Year, QMenu*> menu_map; + std::map<Date::Year, QMenu *> menu_map; - auto create_season_menu = [&](QWidget* parent, Anime::Season season){ - QMenu*& menu = menu_map[season.year]; + auto create_season_menu = [&](QWidget *parent, Anime::Season season) { + QMenu *&menu = menu_map[season.year]; if (!menu) menu = new QMenu(QString::number(season.year), parent); - QAction* action = menu->addAction(Strings::ToQString(Translate::ToLocalString(season))); - connect(action, &QAction::triggered, this, [this, season] { - SetSeason(season); - }); + QAction *action = menu->addAction(Strings::ToQString(Translate::ToLocalString(season))); + connect(action, &QAction::triggered, this, [this, season] { SetSeason(season); }); }; for (Anime::Season s = current_season; s >= last_season; --s) @@ -123,7 +128,7 @@ /* ------------------------------------------------------- */ /* now actually generate the full menu */ - QMenu* full_menu = new QMenu(&season_button); + QMenu *full_menu = new QMenu(&season_button); for (Date::Year c = current_season.year; c >= year_before_collapse; c--) full_menu->addMenu(menu_map[c]); @@ -132,7 +137,7 @@ /* collapse each menu into a decade */ for (Date::Year c = year_before_collapse - 10; c >= last_season.year; c -= 10) { - QMenu* decade_menu = new QMenu(tr("%1s").arg(QString::number(c)), parent); + QMenu *decade_menu = new QMenu(tr("%1s").arg(QString::number(c)), parent); for (Date::Year i = c + 9; i >= c; i--) decade_menu->addMenu(menu_map[i]); full_menu->addMenu(decade_menu); @@ -147,7 +152,7 @@ toolbar->addSeparator(); { - toolbar->addAction(QIcon(":/icons/16x16/arrow-circle-315.png"), tr("Refresh data"), [this]{ + toolbar->addAction(QIcon(":/icons/16x16/arrow-circle-315.png"), tr("Refresh data"), [this] { search_thread_.AddToQueue(season_); if (!search_thread_.isRunning()) search_thread_.start(); @@ -157,11 +162,11 @@ toolbar->addSeparator(); { - QToolButton* button = new QToolButton(toolbar); + QToolButton *button = new QToolButton(toolbar); { /* links */ - QMenu* menu = new QMenu(button); + QMenu *menu = new QMenu(button); menu->addAction(tr("Airing status")); menu->addAction(tr("List status")); menu->addAction(tr("Type")); @@ -176,11 +181,11 @@ } { - QToolButton* button = new QToolButton(toolbar); + QToolButton *button = new QToolButton(toolbar); { /* links */ - QMenu* menu = new QMenu(button); + QMenu *menu = new QMenu(button); menu->addAction(tr("Airing date")); menu->addAction(tr("Episodes")); menu->addAction(tr("Popularity")); @@ -197,11 +202,11 @@ } { - QToolButton* button = new QToolButton(toolbar); + QToolButton *button = new QToolButton(toolbar); { /* links */ - QMenu* menu = new QMenu(button); + QMenu *menu = new QMenu(button); menu->addAction(tr("Images")); menu->addAction(tr("Details")); button->setMenu(menu); @@ -218,7 +223,7 @@ } { - QFrame* line = new QFrame(this); + QFrame *line = new QFrame(this); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); line->setLineWidth(1);