~ubuntu-branches/ubuntu/saucy/quassel/saucy-proposed

« back to all changes in this revision

Viewing changes to src/qtui/settingspages/appearancesettingspage.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-02-17 12:49:50 UTC
  • mto: This revision was merged to the branch mainline in revision 59.
  • Revision ID: james.westby@ubuntu.com-20100217124950-v9hajw5d2xa6fszn
Tags: upstream-0.6~beta1
ImportĀ upstreamĀ versionĀ 0.6~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
#include "appearancesettingspage.h"
22
22
 
 
23
#include "buffersettings.h"
23
24
#include "qtui.h"
24
25
#include "qtuisettings.h"
25
26
#include "qtuistyle.h"
34
35
  : SettingsPage(tr("Interface"), QString(), parent)
35
36
{
36
37
  ui.setupUi(this);
 
38
 
 
39
#ifdef Q_WS_MAC
 
40
  ui.minimizeOnClose->hide();
 
41
#endif
 
42
#ifdef QT_NO_SYSTEMTRAYICON
 
43
  ui.useSystemTrayIcon->hide();
 
44
#endif
 
45
 
37
46
  initAutoWidgets();
38
47
  initStyleComboBox();
39
48
  initLanguageComboBox();
46
55
  }
47
56
 
48
57
  connect(ui.chooseStyleSheet, SIGNAL(clicked()), SLOT(chooseStyleSheet()));
 
58
 
 
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()));
 
62
 
 
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()));
 
66
 
 
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()));
49
70
}
50
71
 
51
72
void AppearanceSettingsPage::initStyleComboBox() {
57
78
}
58
79
 
59
80
void AppearanceSettingsPage::initLanguageComboBox() {
60
 
  QDir i18nDir(Quassel::translationDirPath(), "quassel_*.qm");
 
81
  QDir i18nDir(Quassel::translationDirPath(), "*.qm");
61
82
 
 
83
  QRegExp rx("(qt_)?([a-zA-Z_]+)\\.qm");
62
84
  foreach(QString translationFile, i18nDir.entryList()) {
63
 
    QString localeName(translationFile.mid(8));
64
 
    localeName.chop(3);
65
 
    QLocale locale(localeName);
 
85
    if(!rx.exactMatch(translationFile))
 
86
      continue;
 
87
    if(!rx.cap(1).isEmpty())
 
88
      continue;
 
89
    QLocale locale(rx.cap(2));
66
90
    _locales << locale;
67
91
    ui.languageComboBox->addItem(QLocale::languageToString(locale.language()));
68
92
  }
70
94
 
71
95
void AppearanceSettingsPage::defaults() {
72
96
  ui.styleComboBox->setCurrentIndex(0);
 
97
  ui.languageComboBox->setCurrentIndex(1);
73
98
 
74
99
  SettingsPage::defaults();
75
100
  widgetHasChanged();
90
115
  // Language
91
116
  QLocale locale = uiSettings.value("Locale", QLocale::system()).value<QLocale>();
92
117
  if(locale == QLocale::system())
 
118
    ui.languageComboBox->setCurrentIndex(1);
 
119
  else if(locale.language() == QLocale::C)  // we use C for "untranslated"
93
120
    ui.languageComboBox->setCurrentIndex(0);
94
 
  else if(locale.language() == QLocale::C)
95
 
    ui.languageComboBox->setCurrentIndex(1);
96
121
  else
97
122
    ui.languageComboBox->setCurrentIndex(ui.languageComboBox->findText(QLocale::languageToString(locale.language()), Qt::MatchExactly));
98
123
  ui.languageComboBox->setProperty("storedValue", ui.languageComboBox->currentIndex());
99
124
  Quassel::loadTranslation(selectedLocale());
100
125
 
 
126
  // bufferSettings:
 
127
  BufferSettings bufferSettings;
 
128
  int redirectTarget = bufferSettings.userNoticesTarget();
 
129
  SettingsPage::load(ui.userNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
 
130
  SettingsPage::load(ui.userNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
 
131
  SettingsPage::load(ui.userNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
 
132
 
 
133
  redirectTarget = bufferSettings.serverNoticesTarget();
 
134
  SettingsPage::load(ui.serverNoticesInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
 
135
  SettingsPage::load(ui.serverNoticesInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
 
136
  SettingsPage::load(ui.serverNoticesInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
 
137
 
 
138
  redirectTarget = bufferSettings.errorMsgsTarget();
 
139
  SettingsPage::load(ui.errorMsgsInDefaultBuffer, redirectTarget & BufferSettings::DefaultBuffer);
 
140
  SettingsPage::load(ui.errorMsgsInStatusBuffer, redirectTarget & BufferSettings::StatusBuffer);
 
141
  SettingsPage::load(ui.errorMsgsInCurrentBuffer, redirectTarget & BufferSettings::CurrentBuffer);
 
142
 
101
143
  SettingsPage::load();
102
144
  setChangedState(false);
103
145
}
111
153
    uiSettings.setValue("Style", ui.styleComboBox->currentText());
112
154
    QApplication::setStyle(ui.styleComboBox->currentText());
113
155
  }
 
156
  ui.styleComboBox->setProperty("storedValue", ui.styleComboBox->currentIndex());
114
157
 
115
 
  if(ui.languageComboBox->currentIndex() == 0) {
 
158
  if(ui.languageComboBox->currentIndex() == 1) {
116
159
    uiSettings.remove("Locale"); // force the default (QLocale::system())
117
160
  } else {
118
161
    uiSettings.setValue("Locale", selectedLocale());
119
162
  }
 
163
  ui.languageComboBox->setProperty("storedValue", ui.languageComboBox->currentIndex());
120
164
 
121
165
  bool needsStyleReload =
122
166
        ui.useCustomStyleSheet->isChecked() != ui.useCustomStyleSheet->property("storedValue").toBool()
123
167
    || (ui.useCustomStyleSheet->isChecked() && ui.customStyleSheetPath->text() != ui.customStyleSheetPath->property("storedValue").toString());
124
168
 
 
169
  BufferSettings bufferSettings;
 
170
  int redirectTarget = 0;
 
171
  if(ui.userNoticesInDefaultBuffer->isChecked())
 
172
    redirectTarget |= BufferSettings::DefaultBuffer;
 
173
  if(ui.userNoticesInStatusBuffer->isChecked())
 
174
    redirectTarget |= BufferSettings::StatusBuffer;
 
175
  if(ui.userNoticesInCurrentBuffer->isChecked())
 
176
    redirectTarget |= BufferSettings::CurrentBuffer;
 
177
  bufferSettings.setUserNoticesTarget(redirectTarget);
 
178
 
 
179
  redirectTarget = 0;
 
180
  if(ui.serverNoticesInDefaultBuffer->isChecked())
 
181
    redirectTarget |= BufferSettings::DefaultBuffer;
 
182
  if(ui.serverNoticesInStatusBuffer->isChecked())
 
183
    redirectTarget |= BufferSettings::StatusBuffer;
 
184
  if(ui.serverNoticesInCurrentBuffer->isChecked())
 
185
    redirectTarget |= BufferSettings::CurrentBuffer;
 
186
  bufferSettings.setServerNoticesTarget(redirectTarget);
 
187
 
 
188
  redirectTarget = 0;
 
189
  if(ui.errorMsgsInDefaultBuffer->isChecked())
 
190
    redirectTarget |= BufferSettings::DefaultBuffer;
 
191
  if(ui.errorMsgsInStatusBuffer->isChecked())
 
192
    redirectTarget |= BufferSettings::StatusBuffer;
 
193
  if(ui.errorMsgsInCurrentBuffer->isChecked())
 
194
    redirectTarget |= BufferSettings::CurrentBuffer;
 
195
  bufferSettings.setErrorMsgsTarget(redirectTarget);
 
196
 
125
197
  SettingsPage::save();
126
198
  setChangedState(false);
127
199
  if(needsStyleReload)
131
203
QLocale AppearanceSettingsPage::selectedLocale() const {
132
204
  QLocale locale;
133
205
  int index = ui.languageComboBox->currentIndex();
134
 
  if(index == 0)
 
206
  if(index == 1)
135
207
    locale = QLocale::system();
136
 
  else if(index == 1)
 
208
  else if(index == 0)
137
209
    locale = QLocale::c();
138
210
  else if(index > 1)
139
211
    locale = _locales[index - 2];
159
231
 
160
232
bool AppearanceSettingsPage::testHasChanged() {
161
233
  if(ui.styleComboBox->currentIndex() != ui.styleComboBox->property("storedValue").toInt()) return true;
162
 
 
163
 
  if(selectedLocale() != QLocale()) return true; // QLocale() returns the default locale (manipulated via loadTranslation())
 
234
  if(ui.languageComboBox->currentIndex() != ui.languageComboBox->property("storedValue").toInt()) return true;
 
235
 
 
236
  if(SettingsPage::hasChanged(ui.userNoticesInStatusBuffer)) return true;
 
237
  if(SettingsPage::hasChanged(ui.userNoticesInDefaultBuffer)) return true;
 
238
  if(SettingsPage::hasChanged(ui.userNoticesInCurrentBuffer)) return true;
 
239
 
 
240
  if(SettingsPage::hasChanged(ui.serverNoticesInStatusBuffer)) return true;
 
241
  if(SettingsPage::hasChanged(ui.serverNoticesInDefaultBuffer)) return true;
 
242
  if(SettingsPage::hasChanged(ui.serverNoticesInCurrentBuffer)) return true;
 
243
 
 
244
  if(SettingsPage::hasChanged(ui.errorMsgsInStatusBuffer)) return true;
 
245
  if(SettingsPage::hasChanged(ui.errorMsgsInDefaultBuffer)) return true;
 
246
  if(SettingsPage::hasChanged(ui.errorMsgsInCurrentBuffer)) return true;
164
247
 
165
248
  return false;
166
249
}