Mercurial > minori
annotate src/gui/dialog/settings/application.cc @ 400:2f4dc1580b84
anime_list: kind of properly display highlighted anime above others
...
| author | Paper <paper@tflc.us> |
|---|---|
| date | Fri, 07 Nov 2025 15:40:56 -0500 |
| parents | 963047512d34 |
| children |
| rev | line source |
|---|---|
| 10 | 1 #include "core/session.h" |
| 108 | 2 #include "core/strings.h" |
| 10 | 3 #include "gui/dialog/settings.h" |
| 258 | 4 #include "gui/locale.h" |
| 102 | 5 #include "gui/theme.h" |
| 189 | 6 #include "gui/translate/anime.h" |
| 279 | 7 #include "gui/translate/config.h" |
| 189 | 8 |
| 10 | 9 #include <QCheckBox> |
| 10 #include <QComboBox> | |
| 11 #include <QGroupBox> | |
|
68
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
12 #include <QHBoxLayout> |
|
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
13 #include <QLabel> |
| 10 | 14 #include <QPushButton> |
| 15 #include <QSizePolicy> | |
|
68
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
16 #include <QVBoxLayout> |
| 189 | 17 |
| 393 | 18 QWidget *SettingsPageApplication::CreateAnimeListWidget() |
| 19 { | |
| 20 QWidget *result = new QWidget(this); | |
| 10 | 21 result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); |
| 22 | |
| 393 | 23 QVBoxLayout *full_layout = new QVBoxLayout(result); |
| 10 | 24 |
| 108 | 25 { |
| 26 /* Actions */ | |
| 393 | 27 QGroupBox *actions_group_box = new QGroupBox(tr("Actions"), result); |
| 108 | 28 actions_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); |
| 29 | |
| 393 | 30 QHBoxLayout *actions_layout = new QHBoxLayout(actions_group_box); |
| 10 | 31 |
| 108 | 32 { |
| 33 /* Actions/Double click */ | |
| 393 | 34 QWidget *double_click_widget = new QWidget(actions_group_box); |
| 35 QLabel *dc_combo_box_label = new QLabel(tr("Double click:"), double_click_widget); | |
| 36 QComboBox *dc_combo_box = new QComboBox(double_click_widget); | |
| 108 | 37 dc_combo_box->addItem(tr("View anime info")); |
| 10 | 38 |
| 393 | 39 QVBoxLayout *double_click_layout = new QVBoxLayout(double_click_widget); |
| 108 | 40 double_click_layout->addWidget(dc_combo_box_label); |
| 41 double_click_layout->addWidget(dc_combo_box); | |
| 42 double_click_layout->setContentsMargins(0, 0, 0, 0); | |
| 43 | |
| 44 actions_layout->addWidget(double_click_widget); | |
| 45 } | |
| 46 | |
| 47 { | |
| 48 /* Actions/Middle click */ | |
| 393 | 49 QWidget *middle_click_widget = new QWidget(actions_group_box); |
| 50 QLabel *mc_combo_box_label = new QLabel(tr("Middle click:"), middle_click_widget); | |
| 51 QComboBox *mc_combo_box = new QComboBox(middle_click_widget); | |
| 108 | 52 mc_combo_box->addItem(tr("Play next episode")); |
| 10 | 53 |
| 393 | 54 QVBoxLayout *middle_click_layout = new QVBoxLayout(middle_click_widget); |
| 108 | 55 middle_click_layout->addWidget(mc_combo_box_label); |
| 56 middle_click_layout->addWidget(mc_combo_box); | |
| 57 middle_click_layout->setContentsMargins(0, 0, 0, 0); | |
| 258 | 58 |
| 108 | 59 actions_layout->addWidget(middle_click_widget); |
| 60 } | |
| 10 | 61 |
| 108 | 62 full_layout->addWidget(actions_group_box); |
| 63 } | |
| 64 | |
| 65 { | |
| 66 /* Appearance */ | |
| 393 | 67 QGroupBox *appearance_group_box = new QGroupBox(tr("Appearance"), result); |
| 108 | 68 appearance_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); |
| 69 | |
| 393 | 70 QVBoxLayout *appearance_layout = new QVBoxLayout(appearance_group_box); |
| 10 | 71 |
| 108 | 72 { |
| 73 /* Title language */ | |
| 74 { | |
| 393 | 75 QLabel *lang_combo_box_label = new QLabel(tr("Title language preference:"), appearance_group_box); |
| 108 | 76 appearance_layout->addWidget(lang_combo_box_label); |
| 77 } | |
| 78 { | |
| 393 | 79 QComboBox *lang_combo_box = new QComboBox(appearance_group_box); |
| 108 | 80 lang_combo_box->addItem(tr("Romaji")); |
| 81 lang_combo_box->addItem(tr("Native")); | |
| 82 lang_combo_box->addItem(tr("English")); | |
| 83 connect(lang_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this, | |
| 84 [this](int index) { language = static_cast<Anime::TitleLanguage>(index); }); | |
| 85 lang_combo_box->setCurrentIndex(static_cast<int>(language)); | |
| 86 appearance_layout->addWidget(lang_combo_box); | |
| 87 } | |
| 88 } | |
| 10 | 89 |
| 108 | 90 { |
| 91 /* Application theme */ | |
| 92 { | |
| 393 | 93 QLabel *rating_combo_box_label = new QLabel(tr("Rating system:"), appearance_group_box); |
| 189 | 94 appearance_layout->addWidget(rating_combo_box_label); |
|
187
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
95 } |
|
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
96 |
|
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
97 { |
| 393 | 98 QComboBox *rating_combo_box = new QComboBox(appearance_group_box); |
| 189 | 99 |
| 393 | 100 for (const auto &score_format : Anime::ScoreFormats) |
| 258 | 101 rating_combo_box->addItem(Strings::ToQString(Translate::ToLocalString(score_format)), |
| 102 static_cast<int>(score_format)); | |
| 189 | 103 |
| 104 connect(rating_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this, | |
| 258 | 105 [this, rating_combo_box](int index) { |
| 106 format = static_cast<Anime::ScoreFormat>(rating_combo_box->itemData(index).toInt()); | |
| 107 }); | |
| 189 | 108 |
| 109 rating_combo_box->setCurrentIndex(static_cast<int>(format)); | |
| 110 appearance_layout->addWidget(rating_combo_box); | |
|
187
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
111 } |
|
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
112 } |
|
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
113 |
|
9613d72b097e
*: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents:
112
diff
changeset
|
114 { |
|
400
2f4dc1580b84
anime_list: kind of properly display highlighted anime above others
Paper <paper@tflc.us>
parents:
393
diff
changeset
|
115 /* Hopefully I made this easy to read... |
|
2f4dc1580b84
anime_list: kind of properly display highlighted anime above others
Paper <paper@tflc.us>
parents:
393
diff
changeset
|
116 * TODO: Call into the anime list page and tell it to re-sort everything. */ |
| 393 | 117 QCheckBox *hl_above_anime_box = |
| 258 | 118 new QCheckBox(tr("Display highlighted anime above others"), appearance_group_box); |
| 108 | 119 hl_above_anime_box->setCheckState(highlighted_anime_above_others ? Qt::Checked : Qt::Unchecked); |
| 120 hl_above_anime_box->setEnabled(highlight_anime_if_available); | |
| 121 hl_above_anime_box->setContentsMargins(10, 0, 0, 0); | |
| 122 | |
| 123 connect(hl_above_anime_box, &QCheckBox::stateChanged, this, | |
|
400
2f4dc1580b84
anime_list: kind of properly display highlighted anime above others
Paper <paper@tflc.us>
parents:
393
diff
changeset
|
124 [this](int state) { highlighted_anime_above_others = !(state == Qt::Unchecked); }); |
| 10 | 125 |
| 108 | 126 { |
| 127 /* This is here because the above checkbox actually depends on it to be checked. */ | |
| 393 | 128 QCheckBox *hl_anime_box = new QCheckBox( |
| 258 | 129 tr("Highlight anime if next episode is available in library folders"), appearance_group_box); |
| 108 | 130 hl_anime_box->setCheckState(highlight_anime_if_available ? Qt::Checked : Qt::Unchecked); |
| 10 | 131 |
| 108 | 132 connect(hl_anime_box, &QCheckBox::stateChanged, this, [this, hl_above_anime_box](int state) { |
| 133 highlight_anime_if_available = !(state == Qt::Unchecked); | |
| 134 hl_above_anime_box->setEnabled(state); | |
| 135 }); | |
| 136 | |
| 137 appearance_layout->addWidget(hl_anime_box); | |
| 138 } | |
| 139 | |
| 140 appearance_layout->addWidget(hl_above_anime_box); | |
| 141 } | |
| 142 | |
| 143 full_layout->addWidget(appearance_group_box); | |
| 144 } | |
| 10 | 145 |
| 108 | 146 { |
| 147 /* Progress */ | |
| 393 | 148 QGroupBox *progress_group_box = new QGroupBox(tr("Progress"), result); |
| 108 | 149 progress_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); |
| 150 | |
| 393 | 151 QVBoxLayout *progress_layout = new QVBoxLayout(progress_group_box); |
| 10 | 152 |
| 108 | 153 { |
| 393 | 154 QCheckBox *progress_display_aired_episodes = |
| 108 | 155 new QCheckBox(tr("Display aired episodes (estimated)"), progress_group_box); |
| 156 connect(progress_display_aired_episodes, &QCheckBox::stateChanged, this, | |
| 157 [this](int state) { display_aired_episodes = !(state == Qt::Unchecked); }); | |
| 158 progress_display_aired_episodes->setCheckState(display_aired_episodes ? Qt::Checked : Qt::Unchecked); | |
| 159 progress_layout->addWidget(progress_display_aired_episodes); | |
| 160 } | |
| 161 { | |
| 393 | 162 QCheckBox *progress_display_available_episodes = |
| 108 | 163 new QCheckBox(tr("Display available episodes in library folders"), progress_group_box); |
| 164 connect(progress_display_available_episodes, &QCheckBox::stateChanged, this, | |
| 165 [this](int state) { display_available_episodes = !(state == Qt::Unchecked); }); | |
| 258 | 166 progress_display_available_episodes->setCheckState(display_available_episodes ? Qt::Checked |
| 167 : Qt::Unchecked); | |
| 108 | 168 progress_layout->addWidget(progress_display_available_episodes); |
| 169 } | |
| 10 | 170 |
| 108 | 171 full_layout->addWidget(progress_group_box); |
| 172 } | |
| 10 | 173 |
| 174 full_layout->setSpacing(10); | |
| 175 full_layout->addStretch(); | |
|
68
2417121d894e
*: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents:
62
diff
changeset
|
176 |
| 10 | 177 return result; |
| 178 } | |
| 179 | |
| 393 | 180 QWidget *SettingsPageApplication::CreateGeneralWidget() |
| 181 { | |
| 182 QWidget *result = new QWidget(this); | |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
183 result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
184 |
| 393 | 185 QVBoxLayout *full_layout = new QVBoxLayout(result); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
186 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
187 { |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
188 /* Appearance */ |
| 393 | 189 QGroupBox *appearance_group_box = new QGroupBox(tr("Appearance"), result); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
190 appearance_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
191 |
| 393 | 192 QVBoxLayout *appearance_layout = new QVBoxLayout(appearance_group_box); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
193 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
194 { |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
195 /* Application theme */ |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
196 { |
| 393 | 197 QLabel *theme_combo_box_label = new QLabel(tr("Application theme:"), appearance_group_box); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
198 appearance_layout->addWidget(theme_combo_box_label); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
199 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
200 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
201 { |
| 279 | 202 /* FIXME: don't hardcode these values */ |
| 393 | 203 QComboBox *theme_combo_box = new QComboBox(appearance_group_box); |
| 204 for (const auto &theme : Theme::Themes) | |
| 279 | 205 theme_combo_box->addItem(Strings::ToQString(Translate::ToLocalString(theme))); |
| 206 | |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
207 connect(theme_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this, |
| 279 | 208 [this](int index) { theme = static_cast<Theme::Theme>(index); }); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
209 theme_combo_box->setCurrentIndex(static_cast<int>(theme)); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
210 appearance_layout->addWidget(theme_combo_box); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
211 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
212 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
213 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
214 { |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
215 /* Application locale */ |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
216 { |
| 393 | 217 QLabel *locale_combo_box_label = new QLabel(tr("Application locale:"), appearance_group_box); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
218 appearance_layout->addWidget(locale_combo_box_label); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
219 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
220 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
221 { |
| 393 | 222 QComboBox *locale_combo_box = new QComboBox(appearance_group_box); |
| 223 const auto &available_locales = session.config.locale.GetAvailableLocales(); | |
| 224 for (const auto &l : available_locales) | |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
225 locale_combo_box->addItem(Strings::ToQString(Locale::GetLocaleFullName(l)), l); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
226 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
227 connect(locale_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this, |
| 258 | 228 [this, locale_combo_box](int) { locale = locale_combo_box->currentData().toLocale(); }); |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
229 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
230 for (size_t i = 0; i < available_locales.size(); i++) |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
231 if (available_locales[i] == locale) |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
232 locale_combo_box->setCurrentIndex(i); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
233 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
234 appearance_layout->addWidget(locale_combo_box); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
235 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
236 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
237 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
238 full_layout->addWidget(appearance_group_box); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
239 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
240 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
241 full_layout->setSpacing(10); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
242 full_layout->addStretch(); |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
243 |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
244 return result; |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
245 } |
|
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
246 |
| 393 | 247 void SettingsPageApplication::SaveInfo() |
| 248 { | |
| 10 | 249 session.config.anime_list.language = language; |
| 250 session.config.anime_list.highlighted_anime_above_others = highlighted_anime_above_others; | |
| 251 session.config.anime_list.highlight_anime_if_available = highlight_anime_if_available; | |
| 252 session.config.anime_list.display_aired_episodes = display_aired_episodes; | |
| 253 session.config.anime_list.display_available_episodes = display_available_episodes; | |
| 102 | 254 session.config.theme.SetTheme(theme); |
| 108 | 255 session.config.locale.SetActiveLocale(locale); |
| 10 | 256 } |
| 257 | |
| 393 | 258 SettingsPageApplication::SettingsPageApplication(QWidget *parent) : SettingsPage(parent, tr("Application")) |
| 259 { | |
| 10 | 260 language = session.config.anime_list.language; |
| 189 | 261 format = session.config.anime_list.score_format; |
| 102 | 262 theme = session.config.theme.GetTheme(); |
| 108 | 263 locale = session.config.locale.GetLocale(); |
| 10 | 264 highlighted_anime_above_others = session.config.anime_list.highlighted_anime_above_others; |
| 265 highlight_anime_if_available = session.config.anime_list.highlight_anime_if_available; | |
| 266 display_aired_episodes = session.config.anime_list.display_aired_episodes; | |
| 267 display_available_episodes = session.config.anime_list.display_available_episodes; | |
|
195
975a3f0965e2
locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents:
189
diff
changeset
|
268 AddTab(CreateGeneralWidget(), tr("General")); |
| 10 | 269 AddTab(CreateAnimeListWidget(), tr("Anime list")); |
| 270 } |
