Mercurial > minori
comparison src/gui/dialog/settings/application.cc @ 189:649786bae914
*: etc. code cleanup
I've removed most macros and stuff
dep/animia: [UNTESTED] use raw C++ instead of Objective-C++
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Wed, 06 Dec 2023 19:42:33 -0500 |
parents | 9613d72b097e |
children | 975a3f0965e2 |
comparison
equal
deleted
inserted
replaced
188:168382a89b21 | 189:649786bae914 |
---|---|
1 #include "core/session.h" | 1 #include "core/session.h" |
2 #include "core/strings.h" | 2 #include "core/strings.h" |
3 #include "gui/dialog/settings.h" | 3 #include "gui/dialog/settings.h" |
4 #include "gui/theme.h" | 4 #include "gui/theme.h" |
5 #include "gui/locale.h" | 5 #include "gui/locale.h" |
6 #include "gui/translate/anime.h" | |
7 | |
6 #include <QCheckBox> | 8 #include <QCheckBox> |
7 #include <QComboBox> | 9 #include <QComboBox> |
8 #include <QGroupBox> | 10 #include <QGroupBox> |
9 #include <QHBoxLayout> | 11 #include <QHBoxLayout> |
10 #include <QLabel> | 12 #include <QLabel> |
11 #include <QPushButton> | 13 #include <QPushButton> |
12 #include <QSizePolicy> | 14 #include <QSizePolicy> |
13 #include <QVBoxLayout> | 15 #include <QVBoxLayout> |
16 | |
14 #include <algorithm> | 17 #include <algorithm> |
15 | 18 |
16 QWidget* SettingsPageApplication::CreateAnimeListWidget() { | 19 QWidget* SettingsPageApplication::CreateAnimeListWidget() { |
17 QWidget* result = new QWidget(this); | 20 QWidget* result = new QWidget(this); |
18 result->setAutoFillBackground(true); | 21 result->setAutoFillBackground(true); |
105 } | 108 } |
106 | 109 |
107 { | 110 { |
108 /* Application locale */ | 111 /* Application locale */ |
109 { | 112 { |
110 QLabel* locale_combo_box_label = new QLabel(tr("Set application locale:"), appearance_group_box); | 113 QLabel* locale_combo_box_label = new QLabel(tr("Application locale:"), appearance_group_box); |
111 appearance_layout->addWidget(locale_combo_box_label); | 114 appearance_layout->addWidget(locale_combo_box_label); |
112 } | 115 } |
113 | 116 |
114 { | 117 { |
115 QComboBox* locale_combo_box = new QComboBox(appearance_group_box); | 118 QComboBox* locale_combo_box = new QComboBox(appearance_group_box); |
121 [this, locale_combo_box](int) { locale = locale_combo_box->currentData().toLocale(); }); | 124 [this, locale_combo_box](int) { locale = locale_combo_box->currentData().toLocale(); }); |
122 | 125 |
123 for (size_t i = 0; i < available_locales.size(); i++) | 126 for (size_t i = 0; i < available_locales.size(); i++) |
124 if (available_locales[i] == locale) | 127 if (available_locales[i] == locale) |
125 locale_combo_box->setCurrentIndex(i); | 128 locale_combo_box->setCurrentIndex(i); |
129 | |
126 appearance_layout->addWidget(locale_combo_box); | 130 appearance_layout->addWidget(locale_combo_box); |
127 } | 131 } |
128 } | 132 } |
129 | 133 |
130 { | 134 { |
131 /* Application theme */ | 135 /* Application theme */ |
132 { | 136 { |
133 QLabel* theme_combo_box_label = new QLabel(tr("Application theme:"), appearance_group_box); | 137 QLabel* rating_combo_box_label = new QLabel(tr("Rating system:"), appearance_group_box); |
134 appearance_layout->addWidget(theme_combo_box_label); | 138 appearance_layout->addWidget(rating_combo_box_label); |
135 } | 139 } |
136 | 140 |
137 { | 141 { |
138 QComboBox* theme_combo_box = new QComboBox(appearance_group_box); | 142 QComboBox* rating_combo_box = new QComboBox(appearance_group_box); |
139 theme_combo_box->addItem(tr("Default")); | 143 |
140 theme_combo_box->addItem(tr("Light")); | 144 for (const auto& score_format : Anime::ScoreFormats) |
141 theme_combo_box->addItem(tr("Dark")); | 145 rating_combo_box->addItem(Strings::ToQString(Translate::ToLocalString(score_format)), static_cast<int>(score_format)); |
142 connect(theme_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this, | 146 |
143 [this](int index) { theme = static_cast<Themes>(index); }); | 147 connect(rating_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this, |
144 theme_combo_box->setCurrentIndex(static_cast<int>(theme)); | 148 [this, rating_combo_box](int index) { format = static_cast<Anime::ScoreFormat>(rating_combo_box->itemData(index).toInt()); }); |
145 appearance_layout->addWidget(theme_combo_box); | 149 |
150 rating_combo_box->setCurrentIndex(static_cast<int>(format)); | |
151 appearance_layout->addWidget(rating_combo_box); | |
146 } | 152 } |
147 } | 153 } |
148 | 154 |
149 { | 155 { |
150 /* Hopefully I made this easy to parse... */ | 156 /* Hopefully I made this easy to parse... */ |
218 session.config.locale.SetActiveLocale(locale); | 224 session.config.locale.SetActiveLocale(locale); |
219 } | 225 } |
220 | 226 |
221 SettingsPageApplication::SettingsPageApplication(QWidget* parent) : SettingsPage(parent, tr("Application")) { | 227 SettingsPageApplication::SettingsPageApplication(QWidget* parent) : SettingsPage(parent, tr("Application")) { |
222 language = session.config.anime_list.language; | 228 language = session.config.anime_list.language; |
229 format = session.config.anime_list.score_format; | |
223 theme = session.config.theme.GetTheme(); | 230 theme = session.config.theme.GetTheme(); |
224 locale = session.config.locale.GetLocale(); | 231 locale = session.config.locale.GetLocale(); |
225 highlighted_anime_above_others = session.config.anime_list.highlighted_anime_above_others; | 232 highlighted_anime_above_others = session.config.anime_list.highlighted_anime_above_others; |
226 highlight_anime_if_available = session.config.anime_list.highlight_anime_if_available; | 233 highlight_anime_if_available = session.config.anime_list.highlight_anime_if_available; |
227 display_aired_episodes = session.config.anime_list.display_aired_episodes; | 234 display_aired_episodes = session.config.anime_list.display_aired_episodes; |