29 #include <QFileDialog>
30 #include <QStyleFactory>
40 ui.minimizeOnClose->hide();
42 #ifdef QT_NO_SYSTEMTRAYICON
43 ui.useSystemTrayIcon->hide();
50 foreach(QComboBox *comboBox, findChildren<QComboBox *>()) {
51 connect(comboBox, SIGNAL(currentIndexChanged(QString)),
this, SLOT(
widgetHasChanged()));
53 foreach(QCheckBox *checkBox, findChildren<QCheckBox *>()) {
59 connect(
ui.userNoticesInDefaultBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
60 connect(
ui.userNoticesInStatusBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
61 connect(
ui.userNoticesInCurrentBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
63 connect(
ui.serverNoticesInDefaultBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
64 connect(
ui.serverNoticesInStatusBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
65 connect(
ui.serverNoticesInCurrentBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
67 connect(
ui.errorMsgsInDefaultBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
68 connect(
ui.errorMsgsInStatusBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
69 connect(
ui.errorMsgsInCurrentBuffer, SIGNAL(clicked(
bool)),
this, SLOT(
widgetHasChanged()));
75 QStringList styleList = QStyleFactory::keys();
76 ui.styleComboBox->addItem(tr(
"<System Default>"));
77 foreach(QString style, styleList) {
78 ui.styleComboBox->addItem(style);
87 QRegExp rx(
"(qt_)?([a-zA-Z_]+)\\.qm");
88 foreach(QString translationFile, i18nDir.entryList()) {
89 if (!rx.exactMatch(translationFile))
91 if (!rx.cap(1).isEmpty())
93 QLocale locale(rx.cap(2));
94 _locales[QLocale::languageToString(locale.language())] = locale;
96 foreach(QString language,
_locales.keys()) {
97 ui.languageComboBox->addItem(language);
104 ui.styleComboBox->setCurrentIndex(0);
105 ui.languageComboBox->setCurrentIndex(1);
117 QString style = uiSettings.
value(
"Style", QString(
"")).toString();
118 if (style.isEmpty()) {
119 ui.styleComboBox->setCurrentIndex(0);
122 ui.styleComboBox->setCurrentIndex(
ui.styleComboBox->findText(style, Qt::MatchExactly));
124 ui.styleComboBox->setProperty(
"storedValue",
ui.styleComboBox->currentIndex());
127 QLocale locale = uiSettings.
value(
"Locale", QLocale::system()).value<QLocale>();
128 if (locale == QLocale::system())
129 ui.languageComboBox->setCurrentIndex(1);
130 else if (locale.language() == QLocale::C)
131 ui.languageComboBox->setCurrentIndex(0);
133 ui.languageComboBox->setCurrentIndex(
ui.languageComboBox->findText(QLocale::languageToString(locale.language()), Qt::MatchExactly));
134 ui.languageComboBox->setProperty(
"storedValue",
ui.languageComboBox->currentIndex());
145 SettingsPage::load(
ui.serverNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
146 SettingsPage::load(
ui.serverNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
147 SettingsPage::load(
ui.serverNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
150 SettingsPage::load(
ui.errorMsgsInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
152 SettingsPage::load(
ui.errorMsgsInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
163 if (
ui.styleComboBox->currentIndex() < 1) {
164 uiSettings.
setValue(
"Style", QString(
""));
167 uiSettings.
setValue(
"Style",
ui.styleComboBox->currentText());
168 QApplication::setStyle(
ui.styleComboBox->currentText());
170 ui.styleComboBox->setProperty(
"storedValue",
ui.styleComboBox->currentIndex());
172 if (
ui.languageComboBox->currentIndex() == 1) {
173 uiSettings.
remove(
"Locale");
178 ui.languageComboBox->setProperty(
"storedValue",
ui.languageComboBox->currentIndex());
180 bool needsStyleReload =
181 ui.useCustomStyleSheet->isChecked() !=
ui.useCustomStyleSheet->property(
"storedValue").toBool()
182 || (
ui.useCustomStyleSheet->isChecked() &&
ui.customStyleSheetPath->text() !=
ui.customStyleSheetPath->property(
"storedValue").toString());
185 int redirectTarget = 0;
186 if (
ui.userNoticesInDefaultBuffer->isChecked())
188 if (
ui.userNoticesInStatusBuffer->isChecked())
190 if (
ui.userNoticesInCurrentBuffer->isChecked())
195 if (
ui.serverNoticesInDefaultBuffer->isChecked())
197 if (
ui.serverNoticesInStatusBuffer->isChecked())
199 if (
ui.serverNoticesInCurrentBuffer->isChecked())
204 if (
ui.errorMsgsInDefaultBuffer->isChecked())
206 if (
ui.errorMsgsInStatusBuffer->isChecked())
208 if (
ui.errorMsgsInCurrentBuffer->isChecked())
214 if (needsStyleReload)
222 int index =
ui.languageComboBox->currentIndex();
224 locale = QLocale::system();
226 locale = QLocale::c();
228 locale =
_locales.values()[index - 2];
236 QString dir =
ui.customStyleSheetPath->property(
"storedValue").toString();
237 if (!dir.isEmpty() && QFile(dir).exists())
238 dir = QDir(dir).absolutePath();
242 QString name = QFileDialog::getOpenFileName(
this, tr(
"Please choose a stylesheet file"), dir,
"*.qss");
244 ui.customStyleSheetPath->setText(name);
256 if (
ui.styleComboBox->currentIndex() !=
ui.styleComboBox->property(
"storedValue").toInt())
return true;
257 if (
ui.languageComboBox->currentIndex() !=
ui.languageComboBox->property(
"storedValue").toInt())
return true;