18 #include "generalpage.h"
20 #include <QMessageBox>
23 #include "pencildef.h"
24 #include "preferencemanager.h"
26 #include "ui_generalpage.h"
28 GeneralPage::GeneralPage() : ui(new Ui::
GeneralPage)
37 {
tr(
"Arabic"), QStringLiteral(
"العربية"),
"ar" },
38 {
tr(
"Catalan"), QStringLiteral(
"Català"),
"ca" },
39 {
tr(
"Czech"), QStringLiteral(
"Čeština"),
"cs" },
40 {
tr(
"Danish"), QStringLiteral(
"Dansk"),
"da" },
41 {
tr(
"German"), QStringLiteral(
"Deutsch"),
"de" },
42 {
tr(
"Greek"), QStringLiteral(
"Ελληνικά"),
"el" },
43 {
tr(
"English"), QStringLiteral(
"English"),
"en" },
44 {
tr(
"Spanish"), QStringLiteral(
"Español"),
"es" },
45 {
tr(
"Estonian"), QStringLiteral(
"Eesti"),
"et" },
46 {
tr(
"French"), QStringLiteral(
"Français"),
"fr" },
47 {
tr(
"Hebrew"), QStringLiteral(
"עברית"),
"he" },
48 {
tr(
"Hungarian"), QStringLiteral(
"Magyar"),
"hu_HU" },
49 {
tr(
"Indonesian"), QStringLiteral(
"Bahasa Indonesia"),
"id" },
50 {
tr(
"Italian"), QStringLiteral(
"Italiano"),
"it" },
51 {
tr(
"Japanese"), QStringLiteral(
"日本語"),
"ja" },
52 {
tr(
"Kabyle"), QStringLiteral(
"Taqbaylit"),
"kab" },
53 {
tr(
"Polish"), QStringLiteral(
"Polski"),
"pl" },
54 {
tr(
"Portuguese \u2013 Portugal"), QStringLiteral(
"Português \u2013 Portugal"),
"pt_PT" },
55 {
tr(
"Portuguese \u2013 Brazil"), QStringLiteral(
"Português \u2013 Brasil"),
"pt_BR" },
56 {
tr(
"Russian"), QStringLiteral(
"Русский"),
"ru" },
57 {
tr(
"Slovene"), QStringLiteral(
"Slovenščina"),
"sl" },
58 {
tr(
"Swedish"), QStringLiteral(
"Svenska"),
"sv" },
59 {
tr(
"Turkish"), QStringLiteral(
"Türkçe"),
"tr" },
60 {
tr(
"Vietnamese"), QStringLiteral(
"Tiếng Việt"),
"vi" },
61 {
tr(
"Chinese \u2013 China"), QStringLiteral(
"简体中文"),
"zh_CN" },
62 {
tr(
"Chinese \u2013 Taiwan"), QStringLiteral(
"繁體中文"),
"zh_TW" },
65 for (
auto& lang : languages)
67 const QString itemText = QStringLiteral(
"%1 (%2)").
arg(lang[0]).
arg(lang[1]);
68 const QString localeCode = lang[2];
69 ui->languageCombo->addItem(itemText, localeCode);
72 int value = settings.value(
"windowOpacity").toInt();
73 ui->windowOpacityLevel->setValue(100 - value);
75 QPixmap previewCheckerboard(
":background/checkerboard.png");
78 QPixmap previewDots(
":background/dots.png");
79 QPixmap previewWeave(
":background/weave.jpg");
84 ui->checkerBackgroundButton->setIcon(previewCheckerboard.scaled(32, 32));
85 ui->whiteBackgroundButton->setIcon(previewWhite);
86 ui->greyBackgroundButton->setIcon(previewGrey);
87 ui->dotsBackgroundButton->setIcon(previewDots.scaled(32, 32));
88 ui->weaveBackgroundButton->setIcon(previewWeave.scaled(32, 32));
89 ui->backgroundButtons->setId(ui->checkerBackgroundButton, 1);
90 ui->backgroundButtons->setId(ui->whiteBackgroundButton, 2);
91 ui->backgroundButtons->setId(ui->greyBackgroundButton, 3);
92 ui->backgroundButtons->setId(ui->dotsBackgroundButton, 4);
93 ui->backgroundButtons->setId(ui->weaveBackgroundButton, 5);
98 connect(ui->languageCombo, curIndexChanged,
this, &GeneralPage::languageChanged);
100 connect(ui->backgroundButtons, buttonClicked,
this, &GeneralPage::backgroundChanged);
107 connect(ui->gridSizeInputW, spinValueChanged,
this, &GeneralPage::gridWidthChanged);
108 connect(ui->gridSizeInputH, spinValueChanged,
this, &GeneralPage::gridHeightChanged);
110 connect(ui->actionSafeInput, spinValueChanged,
this, &GeneralPage::actionSafeAreaChanged);
112 connect(ui->titleSafeInput, spinValueChanged,
this, &GeneralPage::titleSafeAreaChanged);
115 connect(ui->framePoolSizeSpin, spinValueChanged,
this, &GeneralPage::frameCacheNumberChanged);
118 GeneralPage::~GeneralPage()
123 void GeneralPage::updateValues()
125 int index = ui->languageCombo->findData(mManager->getString(SETTING::LANGUAGE));
130 ui->languageCombo->setCurrentIndex(index);
134 ui->curveSmoothingLevel->setValue(mManager->getInt(SETTING::CURVE_SMOOTHING));
136 ui->windowOpacityLevel->setValue(100 - mManager->getInt(SETTING::WINDOW_OPACITY));
138 ui->shadowsBox->setChecked(mManager->isOn(SETTING::SHADOW));
140 ui->toolCursorsBox->setChecked(mManager->isOn(SETTING::TOOL_CURSOR));
142 ui->antialiasingBox->setChecked(mManager->isOn(SETTING::ANTIALIAS));
144 ui->dottedCursorBox->setChecked(mManager->isOn(SETTING::DOTTED_CURSOR));
146 ui->gridSizeInputW->setValue(mManager->getInt(SETTING::GRID_SIZE_W));
148 ui->gridSizeInputH->setValue(mManager->getInt(SETTING::GRID_SIZE_H));
150 ui->gridCheckBox->setChecked(mManager->isOn(SETTING::GRID));
153 bool actionSafeOn = mManager->isOn(SETTING::ACTION_SAFE_ON);
154 ui->actionSafeCheckBox->setChecked(actionSafeOn);
156 ui->actionSafeInput->setValue(mManager->getInt(SETTING::ACTION_SAFE));
158 bool titleSafeOn = mManager->isOn(SETTING::TITLE_SAFE_ON);
159 ui->titleSafeCheckBox->setChecked(titleSafeOn);
161 ui->titleSafeInput->setValue(mManager->getInt(SETTING::TITLE_SAFE));
164 ui->safeHelperTextCheckbox->setChecked(mManager->isOn(SETTING::OVERLAY_SAFE_HELPER_TEXT_ON));
167 ui->highResBox->setChecked(mManager->isOn(SETTING::HIGH_RESOLUTION));
170 QString bgName = mManager->getString(SETTING::BACKGROUND_STYLE);
173 ui->framePoolSizeSpin->setValue(mManager->getInt(SETTING::FRAME_POOL_SIZE));
176 if (bgName ==
"checkerboard") buttonIdx = 1;
177 else if (bgName ==
"white") buttonIdx = 2;
178 else if (bgName ==
"grey") buttonIdx = 3;
179 else if (bgName ==
"dots") buttonIdx = 4;
180 else if (bgName ==
"weave") buttonIdx = 5;
181 else Q_ASSERT(
false);
183 ui->backgroundButtons->button(buttonIdx)->setChecked(
true);
186 void GeneralPage::languageChanged(
int i)
188 QString strLocale = ui->languageCombo->itemData(i).toString();
189 mManager->set(SETTING::LANGUAGE, strLocale);
192 tr(
"Restart Required"),
193 tr(
"The language change will take effect after a restart of Pencil2D"));
196 void GeneralPage::backgroundChanged(
int value)
201 case 1: brushName =
"checkerboard";
break;
202 case 2: brushName =
"white";
break;
203 case 3: brushName =
"grey";
break;
204 case 4: brushName =
"dots";
break;
205 case 5: brushName =
"weave";
break;
209 mManager->set(SETTING::BACKGROUND_STYLE, brushName);
212 void GeneralPage::curveSmoothingChanged(
int value)
214 mManager->set(SETTING::CURVE_SMOOTHING, value);
217 void GeneralPage::highResCheckboxStateChanged(
int b)
222 void GeneralPage::shadowsCheckboxStateChanged(
int b)
227 void GeneralPage::antiAliasCheckboxStateChanged(
int b)
232 void GeneralPage::toolCursorsCheckboxStateChanged(
int b)
237 void GeneralPage::dottedCursorCheckboxStateChanged(
int b)
242 void GeneralPage::gridWidthChanged(
int value)
244 mManager->set(SETTING::GRID_SIZE_W, value);
247 void GeneralPage::gridHeightChanged(
int value)
249 mManager->set(SETTING::GRID_SIZE_H, value);
252 void GeneralPage::actionSafeCheckBoxStateChanged(
int b)
255 updateSafeHelperTextEnabledState();
258 void GeneralPage::actionSafeAreaChanged(
int value)
260 mManager->set(SETTING::ACTION_SAFE, value);
263 void GeneralPage::titleSafeCheckBoxStateChanged(
int b)
266 updateSafeHelperTextEnabledState();
269 void GeneralPage::updateSafeHelperTextEnabledState()
271 if (!ui->actionSafeCheckBox->isChecked() && !ui->titleSafeCheckBox->isChecked()) {
272 ui->safeHelperTextCheckbox->setEnabled(
false);
273 ui->labSafeHelperText->setEnabled(
false);
275 ui->safeHelperTextCheckbox->setEnabled(
true);
276 ui->labSafeHelperText->setEnabled(
true);
280 void GeneralPage::SafeAreaHelperTextCheckBoxStateChanged(
int b)
282 mManager->set(SETTING::OVERLAY_SAFE_HELPER_TEXT_ON, b !=
Qt::Unchecked);
285 void GeneralPage::titleSafeAreaChanged(
int value)
287 mManager->set(SETTING::TITLE_SAFE, value);
290 void GeneralPage::gridCheckBoxStateChanged(
int b)
295 void GeneralPage::frameCacheNumberChanged(
int value)
297 mManager->set(SETTING::FRAME_POOL_SIZE, value);
QString tr(const char *sourceText, const char *disambiguation, int n)
void stateChanged(int state)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
void valueChanged(int value)
QMessageBox::StandardButton warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void currentIndexChanged(int index)