annotate src/gui/dialog/settings/application.cc @ 198:bc1ae1810855

dep/animia: switch from using classes to global functions the old idea was ok, but sort of hackish; this method doesn't use classes at all, and this way (especially important!) we can do wayland stuff AND x11 at the same time, which wasn't really possible without stupid workarounds in the other method
author Paper <mrpapersonic@gmail.com>
date Sun, 24 Dec 2023 02:59:42 -0500
parents 975a3f0965e2
children ff0061e75f0f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
1 #include "core/session.h"
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
2 #include "core/strings.h"
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
3 #include "gui/dialog/settings.h"
102
b315f3759c56 *: big patch
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
4 #include "gui/theme.h"
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
5 #include "gui/locale.h"
189
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
6 #include "gui/translate/anime.h"
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
7
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
8 #include <QCheckBox>
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
9 #include <QComboBox>
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
10 #include <QGroupBox>
68
2417121d894e *: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
11 #include <QHBoxLayout>
2417121d894e *: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
12 #include <QLabel>
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
13 #include <QPushButton>
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
14 #include <QSizePolicy>
68
2417121d894e *: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
15 #include <QVBoxLayout>
189
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
16
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
17 #include <algorithm>
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
18
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
19 QWidget* SettingsPageApplication::CreateAnimeListWidget() {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
20 QWidget* result = new QWidget(this);
105
6d8da6e64d61 theme: add dark stylesheet, make it actually usable
Paper <mrpapersonic@gmail.com>
parents: 102
diff changeset
21 result->setAutoFillBackground(true);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
22 result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
23
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
24 QVBoxLayout* full_layout = new QVBoxLayout(result);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
25
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
26 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
27 /* Actions */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
28 QGroupBox* actions_group_box = new QGroupBox(tr("Actions"), result);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
29 actions_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
30
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
31 QHBoxLayout* actions_layout = new QHBoxLayout(actions_group_box);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
32
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
33 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
34 /* Actions/Double click */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
35 QWidget* double_click_widget = new QWidget(actions_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
36 QLabel* dc_combo_box_label = new QLabel(tr("Double click:"), double_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
37 QComboBox* dc_combo_box = new QComboBox(double_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
38 dc_combo_box->addItem(tr("View anime info"));
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
39
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
40 QVBoxLayout* double_click_layout = new QVBoxLayout(double_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
41 double_click_layout->addWidget(dc_combo_box_label);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
42 double_click_layout->addWidget(dc_combo_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
43 double_click_layout->setContentsMargins(0, 0, 0, 0);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
44
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
45 actions_layout->addWidget(double_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
46 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
47
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
48 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
49 /* Actions/Middle click */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
50 QWidget* middle_click_widget = new QWidget(actions_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
51 QLabel* mc_combo_box_label = new QLabel(tr("Middle click:"), middle_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
52 QComboBox* mc_combo_box = new QComboBox(middle_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
53 mc_combo_box->addItem(tr("Play next episode"));
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
54
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
55 QVBoxLayout* middle_click_layout = new QVBoxLayout(middle_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
56 middle_click_layout->addWidget(mc_combo_box_label);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
57 middle_click_layout->addWidget(mc_combo_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
58 middle_click_layout->setContentsMargins(0, 0, 0, 0);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
59
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
60 actions_layout->addWidget(middle_click_widget);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
61 }
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
62
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
63 full_layout->addWidget(actions_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
64 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
65
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
66 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
67 /* Appearance */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
68 QGroupBox* appearance_group_box = new QGroupBox(tr("Appearance"), result);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
69 appearance_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
70
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
71 QVBoxLayout* appearance_layout = new QVBoxLayout(appearance_group_box);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
72
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
73 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
74 /* Title language */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
75 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
76 QLabel* lang_combo_box_label = new QLabel(tr("Title language preference:"), appearance_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
77 appearance_layout->addWidget(lang_combo_box_label);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
78 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
79 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
80 QComboBox* lang_combo_box = new QComboBox(appearance_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
81 lang_combo_box->addItem(tr("Romaji"));
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
82 lang_combo_box->addItem(tr("Native"));
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
83 lang_combo_box->addItem(tr("English"));
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
84 connect(lang_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
85 [this](int index) { language = static_cast<Anime::TitleLanguage>(index); });
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
86 lang_combo_box->setCurrentIndex(static_cast<int>(language));
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
87 appearance_layout->addWidget(lang_combo_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
88 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
89 }
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
90
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
91 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
92 /* Application theme */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
93 {
189
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
94 QLabel* rating_combo_box_label = new QLabel(tr("Rating system:"), appearance_group_box);
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
95 appearance_layout->addWidget(rating_combo_box_label);
187
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
9613d72b097e *: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents: 112
diff changeset
98 {
189
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
99 QComboBox* rating_combo_box = new QComboBox(appearance_group_box);
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
100
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
101 for (const auto& score_format : Anime::ScoreFormats)
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
102 rating_combo_box->addItem(Strings::ToQString(Translate::ToLocalString(score_format)), static_cast<int>(score_format));
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
103
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
104 connect(rating_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
105 [this, rating_combo_box](int index) { format = static_cast<Anime::ScoreFormat>(rating_combo_box->itemData(index).toInt()); });
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
106
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
107 rating_combo_box->setCurrentIndex(static_cast<int>(format));
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
108 appearance_layout->addWidget(rating_combo_box);
187
9613d72b097e *: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents: 112
diff changeset
109 }
9613d72b097e *: multiple performance improvements
Paper <mrpapersonic@gmail.com>
parents: 112
diff changeset
110 }
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 {
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
113 /* Hopefully I made this easy to parse... */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
114 QCheckBox* hl_above_anime_box = new QCheckBox(tr("Display highlighted anime above others"), appearance_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
115 hl_above_anime_box->setCheckState(highlighted_anime_above_others ? Qt::Checked : Qt::Unchecked);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
116 hl_above_anime_box->setEnabled(highlight_anime_if_available);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
117 hl_above_anime_box->setContentsMargins(10, 0, 0, 0);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
118
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
119 connect(hl_above_anime_box, &QCheckBox::stateChanged, this,
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
120 [this](int state) { highlight_anime_if_available = !(state == Qt::Unchecked); });
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
121
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
122 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
123 /* This is here because the above checkbox actually depends on it to be checked. */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
124 QCheckBox* hl_anime_box = new QCheckBox(tr("Highlight anime if next episode is available in library folders"), appearance_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
125 hl_anime_box->setCheckState(highlight_anime_if_available ? Qt::Checked : Qt::Unchecked);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
126
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
127 connect(hl_anime_box, &QCheckBox::stateChanged, this, [this, hl_above_anime_box](int state) {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
128 highlight_anime_if_available = !(state == Qt::Unchecked);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
129 hl_above_anime_box->setEnabled(state);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
130 });
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
131
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
132 appearance_layout->addWidget(hl_anime_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
133 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
134
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
135 appearance_layout->addWidget(hl_above_anime_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
136 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
137
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
138 full_layout->addWidget(appearance_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
139 }
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
140
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
141 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
142 /* Progress */
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
143 QGroupBox* progress_group_box = new QGroupBox(tr("Progress"), result);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
144 progress_group_box->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
145
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
146 QVBoxLayout* progress_layout = new QVBoxLayout(progress_group_box);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
147
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
148 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
149 QCheckBox* progress_display_aired_episodes =
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
150 new QCheckBox(tr("Display aired episodes (estimated)"), progress_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
151 connect(progress_display_aired_episodes, &QCheckBox::stateChanged, this,
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
152 [this](int state) { display_aired_episodes = !(state == Qt::Unchecked); });
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
153 progress_display_aired_episodes->setCheckState(display_aired_episodes ? Qt::Checked : Qt::Unchecked);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
154 progress_layout->addWidget(progress_display_aired_episodes);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
155 }
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
156 {
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
157 QCheckBox* progress_display_available_episodes =
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
158 new QCheckBox(tr("Display available episodes in library folders"), progress_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
159 connect(progress_display_available_episodes, &QCheckBox::stateChanged, this,
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
160 [this](int state) { display_available_episodes = !(state == Qt::Unchecked); });
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
161 progress_display_available_episodes->setCheckState(display_available_episodes ? Qt::Checked : Qt::Unchecked);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
162 progress_layout->addWidget(progress_display_available_episodes);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
163 }
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
164
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
165 full_layout->addWidget(progress_group_box);
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
166 }
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
167
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
168 full_layout->setSpacing(10);
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
169 full_layout->addStretch();
68
2417121d894e *: normalize usage of layouts
Paper <mrpapersonic@gmail.com>
parents: 62
diff changeset
170
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
171 return result;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
172 }
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
173
195
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
174 QWidget* SettingsPageApplication::CreateGeneralWidget() {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
175 QWidget* result = new QWidget(this);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
176 result->setAutoFillBackground(true);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
177 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
178
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
179 QVBoxLayout* full_layout = new QVBoxLayout(result);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
180
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
181 {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
182 /* Appearance */
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
183 QGroupBox* appearance_group_box = new QGroupBox(tr("Appearance"), result);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
184 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
185
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
186 QVBoxLayout* appearance_layout = new QVBoxLayout(appearance_group_box);
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 {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
189 /* Application theme */
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
190 {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
191 QLabel* theme_combo_box_label = new QLabel(tr("Application theme:"), appearance_group_box);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
192 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
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 {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
196 QComboBox* theme_combo_box = new QComboBox(appearance_group_box);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
197 theme_combo_box->addItem(tr("Default"));
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
198 theme_combo_box->addItem(tr("Light"));
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
199 theme_combo_box->addItem(tr("Dark"));
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
200 connect(theme_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
201 [this](int index) { theme = static_cast<Themes>(index); });
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
202 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
203 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
204 }
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
205 }
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
206
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
207 {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
208 /* Application locale */
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
209 {
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
210 QLabel* locale_combo_box_label = new QLabel(tr("Application locale:"), appearance_group_box);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
211 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
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 QComboBox* locale_combo_box = new QComboBox(appearance_group_box);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
216 const auto& available_locales = session.config.locale.GetAvailableLocales();
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
217 for (const auto& l : available_locales)
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
218 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
219
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
220 connect(locale_combo_box, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
221 [this, locale_combo_box](int) { locale = locale_combo_box->currentData().toLocale(); });
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
222
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
223 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
224 if (available_locales[i] == locale)
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
225 locale_combo_box->setCurrentIndex(i);
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 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
228 }
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
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
231 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
232 }
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 full_layout->setSpacing(10);
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
235 full_layout->addStretch();
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 return result;
975a3f0965e2 locale: only attempt loading locales after QApplication is init'd
Paper <mrpapersonic@gmail.com>
parents: 189
diff changeset
238 }
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
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
241 void SettingsPageApplication::SaveInfo() {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
242 session.config.anime_list.language = language;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
243 session.config.anime_list.highlighted_anime_above_others = highlighted_anime_above_others;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
244 session.config.anime_list.highlight_anime_if_available = highlight_anime_if_available;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
245 session.config.anime_list.display_aired_episodes = display_aired_episodes;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
246 session.config.anime_list.display_available_episodes = display_available_episodes;
102
b315f3759c56 *: big patch
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
247 session.config.theme.SetTheme(theme);
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
248 session.config.locale.SetActiveLocale(locale);
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
249 }
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
250
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
251 SettingsPageApplication::SettingsPageApplication(QWidget* parent) : SettingsPage(parent, tr("Application")) {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
252 language = session.config.anime_list.language;
189
649786bae914 *: etc. code cleanup
Paper <mrpapersonic@gmail.com>
parents: 187
diff changeset
253 format = session.config.anime_list.score_format;
102
b315f3759c56 *: big patch
Paper <mrpapersonic@gmail.com>
parents: 101
diff changeset
254 theme = session.config.theme.GetTheme();
108
2004b41d4a59 *: huge commit
Paper <mrpapersonic@gmail.com>
parents: 105
diff changeset
255 locale = session.config.locale.GetLocale();
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
256 highlighted_anime_above_others = session.config.anime_list.highlighted_anime_above_others;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
257 highlight_anime_if_available = session.config.anime_list.highlight_anime_if_available;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
258 display_aired_episodes = session.config.anime_list.display_aired_episodes;
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
259 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
260 AddTab(CreateGeneralWidget(), tr("General"));
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
261 AddTab(CreateAnimeListWidget(), tr("Anime list"));
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
262 }