annotate src/gui/pages/seasons.cc @ 374:f7bb2978de48

gui/pages/anime_list: add Search right-click menu, don't create menu items that do nothing
author Paper <paper@tflc.us>
date Fri, 25 Jul 2025 11:03:34 -0400
parents ea3a74ed2ef9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
466ac9870df9 add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
1 #include "gui/pages/seasons.h"
466ac9870df9 add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
2
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
3 #include "core/anime_db.h"
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
4 #include "core/strings.h"
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
5 #include "gui/translate/anime.h"
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
6 #include "gui/widgets/anime_button.h"
304
2115488eb302 *: add very early season searcher
Paper <paper@paper.us.eu.org>
parents: 295
diff changeset
7 #include "services/services.h"
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
8
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
9 #include <QDate>
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
10 #include <QFrame>
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
11 #include <QListWidget>
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
12 #include <QListWidgetItem>
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
13 #include <QMenu>
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 255
diff changeset
14 #include <QToolBar>
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
15 #include <QToolButton>
258
862d0d8619f6 *: HUUUGE changes
Paper <paper@paper.us.eu.org>
parents: 255
diff changeset
16 #include <QVBoxLayout>
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
17
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
18 #include <iostream>
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
19
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
20 SeasonsPageSearchThread::SeasonsPageSearchThread(QObject *parent) : QThread(parent)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
21 {
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
22 }
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
23
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
24 void SeasonsPageSearchThread::AddToQueue(Anime::Season season)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
25 {
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
26 queue_mutex_.lock();
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
27 queue_.push(season);
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
28 queue_mutex_.unlock();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
29 }
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
30
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
31 void SeasonsPageSearchThread::run()
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
32 {
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
33 queue_mutex_.lock();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
34
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
35 while (!queue_.empty() && !isInterruptionRequested()) {
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
36 Anime::Season season = queue_.front();
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
37
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
38 /* unlock the mutex for a long blocking operation, so items
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
39 * can be added without worry */
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
40 queue_mutex_.unlock();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
41
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
42 if (Services::GetSeason(season))
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
43 emit ReceivedSeason(season);
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
44
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
45 queue_mutex_.lock();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
46
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
47 queue_.pop();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
48 }
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
49
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
50 queue_mutex_.unlock();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
51 }
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
52
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
53 static SeasonsPageSearchThread search_thread_;
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
54
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
55 /* ------------------------------------------------------------------------------------- */
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
56
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
57 static constexpr Date::Year GetClosestDecade(Date::Year year)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
58 {
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
59 return year - (year % 10);
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
60 }
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
61
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
62 void SeasonsPage::Refresh()
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
63 {
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
64 setUpdatesEnabled(false);
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
65
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
66 if (!buttons)
263
96416310ea14 pages/seasons: finish season menu implementation
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
67 return;
96416310ea14 pages/seasons: finish season menu implementation
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
68
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
69 buttons->clear();
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
70
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
71 for (const auto &id : Anime::db.GetAllAnimeForSeason(season_)) {
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
72 QListWidgetItem *item = new QListWidgetItem;
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
73 AnimeButton *button = new AnimeButton(this);
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
74 button->SetAnime(Anime::db.items[id]);
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 355
diff changeset
75 item->setSizeHint(QSize(500, 200));
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
76 buttons->addItem(item);
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
77 buttons->setItemWidget(item, button);
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
78 }
263
96416310ea14 pages/seasons: finish season menu implementation
Paper <paper@paper.us.eu.org>
parents: 260
diff changeset
79
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
80 season_button.setText(Strings::ToQString(Translate::ToLocalString(season_)));
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
81
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
82 setUpdatesEnabled(true);
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
83 }
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
84
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
85 void SeasonsPage::SetSeason(Anime::Season season)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
86 {
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
87 season_ = season;
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
88
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
89 Refresh();
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
90 }
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
91
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
92 SeasonsPage::SeasonsPage(QWidget *parent) : QFrame(parent)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
93 {
295
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
94 setBackgroundRole(QPalette::Base);
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
95 setFrameShape(QFrame::Box);
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
96 setFrameShadow(QFrame::Sunken);
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
97
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
98 QVBoxLayout *full_layout = new QVBoxLayout(this);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
99
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
100 {
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
101 /* Toolbar */
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
102 QToolBar *toolbar = new QToolBar(this);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
103 toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
104 toolbar->setIconSize(QSize(16, 16));
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
105 toolbar->setMovable(false);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
106
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
107 {
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
108 /* XXX this last year probably shouldn't be hardcoded */
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
109 static const Anime::Season last_season(Anime::Season::Name::Winter, 1960);
355
83e6ba09338f gui/pages/seasons: fix function disambiguation on win32
Paper <paper@paper.us.eu.org>
parents: 348
diff changeset
110 Anime::Season current_season((Date(QDate::currentDate())));
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
111 const Date::Year year_before_collapse = GetClosestDecade(current_season.year) - 10;
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
112
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
113 /* year -> menu for that year */
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
114 std::map<Date::Year, QMenu *> menu_map;
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
115
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
116 auto create_season_menu = [&](QWidget *parent, Anime::Season season) {
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
117 QMenu *&menu = menu_map[season.year];
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
118 if (!menu)
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
119 menu = new QMenu(QString::number(season.year), parent);
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
120
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
121 QAction *action = menu->addAction(Strings::ToQString(Translate::ToLocalString(season)));
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
122 connect(action, &QAction::triggered, this, [this, season] { SetSeason(season); });
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
123 };
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
124
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
125 for (Anime::Season s = current_season; s >= last_season; --s)
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
126 create_season_menu(&season_button, s);
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
127
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
128 /* ------------------------------------------------------- */
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
129 /* now actually generate the full menu */
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
130
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
131 QMenu *full_menu = new QMenu(&season_button);
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
132
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
133 for (Date::Year c = current_season.year; c >= year_before_collapse; c--)
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
134 full_menu->addMenu(menu_map[c]);
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
135
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
136 full_menu->addSeparator();
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
137
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
138 /* collapse each menu into a decade */
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
139 for (Date::Year c = year_before_collapse - 10; c >= last_season.year; c -= 10) {
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
140 QMenu *decade_menu = new QMenu(tr("%1s").arg(QString::number(c)), parent);
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
141 for (Date::Year i = c + 9; i >= c; i--)
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
142 decade_menu->addMenu(menu_map[i]);
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
143 full_menu->addMenu(decade_menu);
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
144 }
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
145
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
146 season_button.setMenu(full_menu);
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
147 season_button.setPopupMode(QToolButton::InstantPopup);
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
148
348
6b0768158dcd text: redesign almost every widget
Paper <paper@paper.us.eu.org>
parents: 327
diff changeset
149 toolbar->addWidget(&season_button);
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
150 }
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
151
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
152 toolbar->addSeparator();
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
153
304
2115488eb302 *: add very early season searcher
Paper <paper@paper.us.eu.org>
parents: 295
diff changeset
154 {
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
155 toolbar->addAction(QIcon(":/icons/16x16/arrow-circle-315.png"), tr("Refresh data"), [this] {
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
156 search_thread_.AddToQueue(season_);
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
157 if (!search_thread_.isRunning())
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
158 search_thread_.start();
304
2115488eb302 *: add very early season searcher
Paper <paper@paper.us.eu.org>
parents: 295
diff changeset
159 });
2115488eb302 *: add very early season searcher
Paper <paper@paper.us.eu.org>
parents: 295
diff changeset
160 }
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
161
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
162 toolbar->addSeparator();
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
163
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
164 {
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
165 QToolButton *button = new QToolButton(toolbar);
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
166
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
167 {
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
168 /* links */
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
169 QMenu *menu = new QMenu(button);
291
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
170 menu->addAction(tr("Airing status"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
171 menu->addAction(tr("List status"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
172 menu->addAction(tr("Type"));
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
173 button->setMenu(menu);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
174 }
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
175
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
176 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
177 button->setIcon(QIcon(":/icons/16x16/category.png"));
291
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
178 button->setText(tr("Group by:"));
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
179 button->setPopupMode(QToolButton::InstantPopup);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
180 toolbar->addWidget(button);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
181 }
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
182
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
183 {
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
184 QToolButton *button = new QToolButton(toolbar);
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
185
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
186 {
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
187 /* links */
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
188 QMenu *menu = new QMenu(button);
291
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
189 menu->addAction(tr("Airing date"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
190 menu->addAction(tr("Episodes"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
191 menu->addAction(tr("Popularity"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
192 menu->addAction(tr("Score"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
193 menu->addAction(tr("Title"));
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
194 button->setMenu(menu);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
195 }
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
196
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
197 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
198 button->setIcon(QIcon(":/icons/16x16/sort-quantity-descending.png"));
291
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
199 button->setText(tr("Sort by:"));
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
200 button->setPopupMode(QToolButton::InstantPopup);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
201 toolbar->addWidget(button);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
202 }
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
203
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
204 {
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
205 QToolButton *button = new QToolButton(toolbar);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
206
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
207 {
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
208 /* links */
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
209 QMenu *menu = new QMenu(button);
291
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
210 menu->addAction(tr("Images"));
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
211 menu->addAction(tr("Details"));
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
212 button->setMenu(menu);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
213 }
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
214
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
215 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
216 button->setIcon(QIcon(":/icons/16x16/ui-scroll-pane-detail.png"));
291
9a88e1725fd2 *: refactor lots of stuff
Paper <paper@paper.us.eu.org>
parents: 279
diff changeset
217 button->setText(tr("View:"));
255
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
218 button->setPopupMode(QToolButton::InstantPopup);
fe702c8f161f *: whatever
Paper <paper@paper.us.eu.org>
parents: 254
diff changeset
219 toolbar->addWidget(button);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
220 }
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
221
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
222 full_layout->addWidget(toolbar);
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
223 }
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
224
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
225 {
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 365
diff changeset
226 QFrame *line = new QFrame(this);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
227 line->setFrameShape(QFrame::HLine);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
228 line->setFrameShadow(QFrame::Sunken);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
229 line->setLineWidth(1);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
230 full_layout->addWidget(line);
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
231 }
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
232
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
233 {
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
234 buttons = new QListWidget(this);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
235 buttons->setFlow(QListView::LeftToRight);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
236 buttons->setWrapping(true);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
237 buttons->setContentsMargins(4, 4, 4, 4);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
238 buttons->setSpacing(2);
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
239 buttons->setResizeMode(QListView::Adjust);
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 355
diff changeset
240 buttons->setUniformItemSizes(true);
254
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
241
d14f8e0e40c3 [UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents: 253
diff changeset
242 full_layout->addWidget(buttons);
253
b3549da699a6 *: ooooh! stupid big commit!
Paper <paper@paper.us.eu.org>
parents: 236
diff changeset
243 }
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
244
295
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
245 full_layout->setContentsMargins(0, 0, 0, 0);
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
246 full_layout->setSpacing(0);
b82841e76e79 *: better support on Windows
Paper <paper@paper.us.eu.org>
parents: 291
diff changeset
247
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
248 connect(&search_thread_, &SeasonsPageSearchThread::ReceivedSeason, this, [this](Anime::Season season) {
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
249 if (season == season_)
325
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
250 Refresh();
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
251 });
78929794e7d8 pages/seasons: run seasons search in a separate thread
Paper <paper@paper.us.eu.org>
parents: 304
diff changeset
252
260
dd211ff68b36 pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents: 258
diff changeset
253 /* Do NOT move this up in this function, buttons HAS to be initialized */
327
b5d6c27c308f anime: refactor Anime::SeriesSeason to Season class
Paper <paper@paper.us.eu.org>
parents: 326
diff changeset
254 SetSeason({Anime::Season::Name::Summer, 2011U});
54
466ac9870df9 add stub pages (to be implemented)
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
255 }