Mercurial > minori
annotate src/gui/pages/seasons.cc @ 378:5912dafc6e28
anime: add poster cache
:)
| author | Paper <paper@tflc.us> |
|---|---|
| date | Wed, 05 Nov 2025 12:50:35 -0500 |
| parents | ea3a74ed2ef9 |
| children |
| 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 | 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 | 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 | 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 | 13 #include <QMenu> |
| 258 | 14 #include <QToolBar> |
| 255 | 15 #include <QToolButton> |
| 258 | 16 #include <QVBoxLayout> |
| 253 | 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 | 94 setBackgroundRole(QPalette::Base); |
| 95 setFrameShape(QFrame::Box); | |
| 96 setFrameShadow(QFrame::Sunken); | |
| 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 | 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 | 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 | 150 } |
| 151 | |
| 152 toolbar->addSeparator(); | |
| 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 | 166 |
| 167 { | |
| 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 | 170 menu->addAction(tr("Airing status")); |
| 171 menu->addAction(tr("List status")); | |
| 172 menu->addAction(tr("Type")); | |
| 255 | 173 button->setMenu(menu); |
| 174 } | |
| 175 | |
| 176 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); | |
| 177 button->setIcon(QIcon(":/icons/16x16/category.png")); | |
| 291 | 178 button->setText(tr("Group by:")); |
| 255 | 179 button->setPopupMode(QToolButton::InstantPopup); |
| 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 | 185 |
| 186 { | |
| 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 | 189 menu->addAction(tr("Airing date")); |
| 190 menu->addAction(tr("Episodes")); | |
| 191 menu->addAction(tr("Popularity")); | |
| 192 menu->addAction(tr("Score")); | |
| 193 menu->addAction(tr("Title")); | |
| 255 | 194 button->setMenu(menu); |
| 195 } | |
| 196 | |
| 197 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); | |
| 198 button->setIcon(QIcon(":/icons/16x16/sort-quantity-descending.png")); | |
| 291 | 199 button->setText(tr("Sort by:")); |
| 255 | 200 button->setPopupMode(QToolButton::InstantPopup); |
| 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 | 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 | 207 { |
| 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 | 210 menu->addAction(tr("Images")); |
| 211 menu->addAction(tr("Details")); | |
| 255 | 212 button->setMenu(menu); |
| 213 } | |
| 214 | |
| 215 button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); | |
| 216 button->setIcon(QIcon(":/icons/16x16/ui-scroll-pane-detail.png")); | |
| 291 | 217 button->setText(tr("View:")); |
| 255 | 218 button->setPopupMode(QToolButton::InstantPopup); |
| 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 | 223 } |
|
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
253
diff
changeset
|
224 |
| 253 | 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 | 231 } |
|
254
d14f8e0e40c3
[UNFINISHED] *: update anime button
Paper <paper@paper.us.eu.org>
parents:
253
diff
changeset
|
232 |
| 253 | 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 | 243 } |
|
260
dd211ff68b36
pages/seasons: add initial functionality
Paper <paper@paper.us.eu.org>
parents:
258
diff
changeset
|
244 |
| 295 | 245 full_layout->setContentsMargins(0, 0, 0, 0); |
| 246 full_layout->setSpacing(0); | |
| 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 } |
