1 /***************************************************************************
2 * Copyright (C) 2005-08 by the Quassel IRC Team *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
21 #include "colorsettingspage.h"
24 #include "qtuisettings.h"
25 #include "colorbutton.h"
27 #include <QColorDialog>
32 ColorSettingsPage::ColorSettingsPage(QWidget *parent)
33 : SettingsPage(tr("Appearance"), tr("Color settings"), parent) {
36 mapper = new QSignalMapper(this);
38 connect(ui.inactiveActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
39 connect(ui.inactiveActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
40 connect(ui.inactiveActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
41 connect(ui.noActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
42 connect(ui.noActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
43 connect(ui.noActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
44 connect(ui.highlightActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
45 connect(ui.highlightActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
46 connect(ui.highlightActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
47 connect(ui.newMessageActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
48 connect(ui.newMessageActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
49 connect(ui.newMessageActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
50 connect(ui.otherActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
51 connect(ui.otherActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
52 connect(ui.otherActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
54 mapper->setMapping(ui.inactiveActivityFG, ui.inactiveActivityFG);
55 mapper->setMapping(ui.inactiveActivityBG, ui.inactiveActivityBG);
56 mapper->setMapping(ui.highlightActivityFG, ui.highlightActivityFG);
57 mapper->setMapping(ui.highlightActivityBG, ui.highlightActivityBG);
58 mapper->setMapping(ui.newMessageActivityFG, ui.newMessageActivityFG);
59 mapper->setMapping(ui.newMessageActivityBG, ui.newMessageActivityBG);
60 mapper->setMapping(ui.noActivityFG, ui.noActivityFG);
61 mapper->setMapping(ui.noActivityBG, ui.noActivityBG);
62 mapper->setMapping(ui.otherActivityFG, ui.otherActivityFG);
63 mapper->setMapping(ui.otherActivityBG, ui.otherActivityBG);
67 connect(ui.errorMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
68 connect(ui.errorMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
69 connect(ui.noticeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
70 connect(ui.noticeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
71 connect(ui.plainMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
72 connect(ui.plainMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
73 connect(ui.serverMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
74 connect(ui.serverMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
75 connect(ui.actionMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
76 connect(ui.actionMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
77 connect(ui.joinMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
78 connect(ui.joinMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
79 connect(ui.kickMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
80 connect(ui.kickMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
81 connect(ui.modeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
82 connect(ui.modeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
83 connect(ui.partMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
84 connect(ui.partMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
85 connect(ui.quitMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
86 connect(ui.quitMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
87 connect(ui.renameMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
88 connect(ui.renameMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
90 mapper->setMapping(ui.errorMessageFG, ui.errorMessageFG);
91 mapper->setMapping(ui.errorMessageBG, ui.errorMessageBG);
92 mapper->setMapping(ui.noticeMessageFG, ui.noticeMessageFG);
93 mapper->setMapping(ui.noticeMessageBG, ui.noticeMessageBG);
94 mapper->setMapping(ui.plainMessageFG, ui.plainMessageFG);
95 mapper->setMapping(ui.plainMessageBG, ui.plainMessageBG);
96 mapper->setMapping(ui.serverMessageFG, ui.serverMessageFG);
97 mapper->setMapping(ui.serverMessageBG, ui.serverMessageBG);
98 mapper->setMapping(ui.actionMessageFG, ui.actionMessageFG);
99 mapper->setMapping(ui.actionMessageBG, ui.actionMessageBG);
100 mapper->setMapping(ui.joinMessageFG, ui.joinMessageFG);
101 mapper->setMapping(ui.joinMessageBG, ui.joinMessageBG);
102 mapper->setMapping(ui.kickMessageFG, ui.kickMessageFG);
103 mapper->setMapping(ui.kickMessageBG, ui.kickMessageBG);
104 mapper->setMapping(ui.modeMessageFG, ui.modeMessageFG);
105 mapper->setMapping(ui.modeMessageBG, ui.modeMessageBG);
106 mapper->setMapping(ui.partMessageFG, ui.partMessageFG);
107 mapper->setMapping(ui.partMessageBG, ui.partMessageBG);
108 mapper->setMapping(ui.quitMessageFG, ui.quitMessageFG);
109 mapper->setMapping(ui.quitMessageBG, ui.quitMessageBG);
110 mapper->setMapping(ui.renameMessageFG, ui.renameMessageFG);
111 mapper->setMapping(ui.renameMessageBG, ui.renameMessageBG);
113 //Message Layout tab:
114 connect(ui.timestampFG, SIGNAL(clicked()), mapper, SLOT(map()));
115 connect(ui.timestampBG, SIGNAL(clicked()), mapper, SLOT(map()));
116 connect(ui.senderFG, SIGNAL(clicked()), mapper, SLOT(map()));
117 connect(ui.senderBG, SIGNAL(clicked()), mapper, SLOT(map()));
118 connect(ui.nickFG, SIGNAL(clicked()), mapper, SLOT(map()));
119 connect(ui.nickBG, SIGNAL(clicked()), mapper, SLOT(map()));
120 connect(ui.hostmaskFG, SIGNAL(clicked()), mapper, SLOT(map()));
121 connect(ui.hostmaskBG, SIGNAL(clicked()), mapper, SLOT(map()));
122 connect(ui.channelnameFG, SIGNAL(clicked()), mapper, SLOT(map()));
123 connect(ui.channelnameBG, SIGNAL(clicked()), mapper, SLOT(map()));
124 connect(ui.modeFlagsFG, SIGNAL(clicked()), mapper, SLOT(map()));
125 connect(ui.modeFlagsBG, SIGNAL(clicked()), mapper, SLOT(map()));
126 connect(ui.urlFG, SIGNAL(clicked()), mapper, SLOT(map()));
127 connect(ui.urlBG, SIGNAL(clicked()), mapper, SLOT(map()));
129 mapper->setMapping(ui.timestampFG, ui.timestampFG);
130 mapper->setMapping(ui.timestampBG, ui.timestampBG);
131 mapper->setMapping(ui.senderFG, ui.senderFG);
132 mapper->setMapping(ui.senderBG, ui.senderBG);
133 mapper->setMapping(ui.nickFG, ui.nickFG);
134 mapper->setMapping(ui.nickBG, ui.nickBG);
135 mapper->setMapping(ui.hostmaskFG, ui.hostmaskFG);
136 mapper->setMapping(ui.hostmaskBG, ui.hostmaskBG);
137 mapper->setMapping(ui.channelnameFG, ui.channelnameFG);
138 mapper->setMapping(ui.channelnameBG, ui.channelnameBG);
139 mapper->setMapping(ui.modeFlagsFG, ui.modeFlagsFG);
140 mapper->setMapping(ui.modeFlagsBG, ui.modeFlagsBG);
141 mapper->setMapping(ui.urlFG, ui.urlFG);
142 mapper->setMapping(ui.urlBG, ui.urlBG);
144 //Mirc Color Codes tab:
145 connect(ui.color0, SIGNAL(clicked()), mapper, SLOT(map()));
146 connect(ui.color1, SIGNAL(clicked()), mapper, SLOT(map()));
147 connect(ui.color2, SIGNAL(clicked()), mapper, SLOT(map()));
148 connect(ui.color3, SIGNAL(clicked()), mapper, SLOT(map()));
149 connect(ui.color4, SIGNAL(clicked()), mapper, SLOT(map()));
150 connect(ui.color5, SIGNAL(clicked()), mapper, SLOT(map()));
151 connect(ui.color6, SIGNAL(clicked()), mapper, SLOT(map()));
152 connect(ui.color7, SIGNAL(clicked()), mapper, SLOT(map()));
153 connect(ui.color8, SIGNAL(clicked()), mapper, SLOT(map()));
154 connect(ui.color9, SIGNAL(clicked()), mapper, SLOT(map()));
155 connect(ui.color10, SIGNAL(clicked()), mapper, SLOT(map()));
156 connect(ui.color11, SIGNAL(clicked()), mapper, SLOT(map()));
157 connect(ui.color12, SIGNAL(clicked()), mapper, SLOT(map()));
158 connect(ui.color13, SIGNAL(clicked()), mapper, SLOT(map()));
159 connect(ui.color14, SIGNAL(clicked()), mapper, SLOT(map()));
160 connect(ui.color15, SIGNAL(clicked()), mapper, SLOT(map()));
162 mapper->setMapping(ui.color0, ui.color0);
163 mapper->setMapping(ui.color1, ui.color1);
164 mapper->setMapping(ui.color2, ui.color2);
165 mapper->setMapping(ui.color3, ui.color3);
166 mapper->setMapping(ui.color4, ui.color4);
167 mapper->setMapping(ui.color5, ui.color5);
168 mapper->setMapping(ui.color6, ui.color6);
169 mapper->setMapping(ui.color7, ui.color7);
170 mapper->setMapping(ui.color8, ui.color8);
171 mapper->setMapping(ui.color9, ui.color9);
172 mapper->setMapping(ui.color10, ui.color10);
173 mapper->setMapping(ui.color11, ui.color11);
174 mapper->setMapping(ui.color12, ui.color12);
175 mapper->setMapping(ui.color13, ui.color13);
176 mapper->setMapping(ui.color14, ui.color14);
177 mapper->setMapping(ui.color15, ui.color15);
180 connect(ui.onlineStatusFG, SIGNAL(clicked()), mapper, SLOT(map()));
181 connect(ui.onlineStatusBG, SIGNAL(clicked()), mapper, SLOT(map()));
182 connect(ui.onlineStatusBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
183 connect(ui.awayStatusFG, SIGNAL(clicked()), mapper, SLOT(map()));
184 connect(ui.awayStatusBG, SIGNAL(clicked()), mapper, SLOT(map()));
185 connect(ui.awayStatusBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
187 mapper->setMapping(ui.onlineStatusFG, ui.onlineStatusFG);
188 mapper->setMapping(ui.onlineStatusBG, ui.onlineStatusBG);
189 mapper->setMapping(ui.awayStatusFG, ui.awayStatusFG);
190 mapper->setMapping(ui.awayStatusBG, ui.awayStatusBG);
192 connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseColor(QWidget *)));
194 //disable unused buttons:
196 ui.inactiveActivityUseBG->setEnabled(false);
197 ui.noActivityUseBG->setEnabled(false);
198 ui.highlightActivityUseBG->setEnabled(false);
199 ui.newMessageActivityUseBG->setEnabled(false);
200 ui.otherActivityUseBG->setEnabled(false);
202 ui.errorMessageUseBG->setEnabled(false);
203 ui.noticeMessageUseBG->setEnabled(false);
204 ui.plainMessageUseBG->setEnabled(false);
205 ui.serverMessageUseBG->setEnabled(false);
206 ui.actionMessageUseBG->setEnabled(false);
207 ui.joinMessageUseBG->setEnabled(false);
208 ui.kickMessageUseBG->setEnabled(false);
209 ui.modeMessageUseBG->setEnabled(false);
210 ui.partMessageUseBG->setEnabled(false);
211 ui.quitMessageUseBG->setEnabled(false);
212 ui.renameMessageUseBG->setEnabled(false);
214 ui.timestampUseBG->setEnabled(false);
215 ui.senderUseBG->setEnabled(false);
216 ui.nickFG->setEnabled(false);
217 ui.nickUseBG->setEnabled(false);
218 ui.hostmaskFG->setEnabled(false);
219 ui.hostmaskUseBG->setEnabled(false);
220 ui.channelnameFG->setEnabled(false);
221 ui.channelnameUseBG->setEnabled(false);
222 ui.modeFlagsFG->setEnabled(false);
223 ui.modeFlagsUseBG->setEnabled(false);
224 ui.urlFG->setEnabled(false);
225 ui.urlUseBG->setEnabled(false);
227 ui.onlineStatusUseBG->setEnabled(false);
228 ui.awayStatusUseBG->setEnabled(false);
232 bool ColorSettingsPage::hasDefaults() const {
236 void ColorSettingsPage::defaults() {
238 defaultServerActivity();
239 defaultUserActivity();
241 defaultMircColorCodes();
245 void ColorSettingsPage::defaultBufferview() {
246 ui.inactiveActivityFG->setColor(QColor(Qt::gray));
247 ui.inactiveActivityBG->setColor(QColor(Qt::white));
248 ui.inactiveActivityBG->setEnabled(false);
249 ui.inactiveActivityUseBG->setChecked(false);
250 ui.noActivityFG->setColor(QColor(Qt::black));
251 ui.noActivityBG->setColor(QColor(Qt::white));
252 ui.noActivityBG->setEnabled(false);
253 ui.noActivityUseBG->setChecked(false);
254 ui.highlightActivityFG->setColor(QColor(Qt::magenta));
255 ui.highlightActivityBG->setColor(QColor(Qt::white));
256 ui.highlightActivityBG->setEnabled(false);
257 ui.highlightActivityUseBG->setChecked(false);
258 ui.newMessageActivityFG->setColor(QColor(Qt::green));
259 ui.newMessageActivityBG->setColor(QColor(Qt::white));
260 ui.newMessageActivityBG->setEnabled(false);
261 ui.newMessageActivityUseBG->setChecked(false);
262 ui.otherActivityFG->setColor(QColor(Qt::darkGreen));
263 ui.otherActivityBG->setColor(QColor(Qt::white));
264 ui.otherActivityBG->setEnabled(false);
265 ui.otherActivityUseBG->setChecked(false);
271 void ColorSettingsPage::defaultServerActivity() {
272 ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg, Settings::Default).foreground().color());
273 ui.errorMessageBG->setColor(QColor("white"));
274 ui.errorMessageBG->setEnabled(false);
275 ui.errorMessageUseBG->setChecked(false);
276 ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg, Settings::Default).foreground().color());
277 ui.noticeMessageBG->setColor(QColor("white"));
278 ui.noticeMessageBG->setEnabled(false);
279 ui.noticeMessageUseBG->setChecked(false);
280 ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg, Settings::Default).foreground().color());
281 ui.plainMessageBG->setColor(QColor("white"));
282 ui.plainMessageBG->setEnabled(false);
283 ui.plainMessageUseBG->setChecked(false);
284 ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg, Settings::Default).foreground().color());
285 ui.serverMessageBG->setColor(QColor("white"));
286 ui.serverMessageBG->setEnabled(false);
287 ui.serverMessageUseBG->setChecked(false);
293 void ColorSettingsPage::defaultUserActivity() {
294 ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg, Settings::Default).foreground().color());
295 ui.actionMessageBG->setColor(QColor("white"));
296 ui.actionMessageBG->setEnabled(false);
297 ui.actionMessageUseBG->setChecked(false);
298 ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg, Settings::Default).foreground().color());
299 ui.joinMessageBG->setColor(QColor("white"));
300 ui.joinMessageBG->setEnabled(false);
301 ui.joinMessageUseBG->setChecked(false);
302 ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg, Settings::Default).foreground().color());
303 ui.kickMessageBG->setColor(QColor("white"));
304 ui.kickMessageBG->setEnabled(false);
305 ui.kickMessageUseBG->setChecked(false);
306 ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg, Settings::Default).foreground().color());
307 ui.modeMessageBG->setColor(QColor("white"));
308 ui.modeMessageBG->setEnabled(false);
309 ui.modeMessageUseBG->setChecked(false);
310 ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg, Settings::Default).foreground().color());
311 ui.partMessageBG->setColor(QColor("white"));
312 ui.partMessageBG->setEnabled(false);
313 ui.partMessageUseBG->setChecked(false);
314 ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg, Settings::Default).foreground().color());
315 ui.quitMessageBG->setColor(QColor("white"));
316 ui.quitMessageBG->setEnabled(false);
317 ui.quitMessageUseBG->setChecked(false);
318 ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg, Settings::Default).foreground().color());
319 ui.renameMessageBG->setColor(QColor("white"));
320 ui.renameMessageBG->setEnabled(false);
321 ui.renameMessageUseBG->setChecked(false);
327 void ColorSettingsPage::defaultMessage() {
328 ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp, Settings::Default).foreground().color());
329 ui.timestampBG->setColor(QColor("white"));
330 ui.timestampBG->setEnabled(false);
331 ui.timestampUseBG->setChecked(false);
332 ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender, Settings::Default).foreground().color());
333 ui.senderBG->setColor(QColor("white"));
334 ui.senderBG->setEnabled(false);
335 ui.senderUseBG->setChecked(false);
336 ui.nickFG->setColor(QColor("black"));
337 ui.nickBG->setColor(QColor("white"));
338 ui.nickBG->setEnabled(false);
339 ui.nickUseBG->setChecked(false);
340 ui.hostmaskFG->setColor(QColor("black"));
341 ui.hostmaskBG->setColor(QColor("white"));
342 ui.hostmaskBG->setEnabled(false);
343 ui.hostmaskUseBG->setChecked(false);
344 ui.channelnameFG->setColor(QColor("black"));
345 ui.channelnameBG->setColor(QColor("white"));
346 ui.channelnameBG->setEnabled(false);
347 ui.channelnameUseBG->setChecked(false);
348 ui.modeFlagsFG->setColor(QColor("black"));
349 ui.modeFlagsBG->setColor(QColor("white"));
350 ui.modeFlagsBG->setEnabled(false);
351 ui.modeFlagsUseBG->setChecked(false);
352 ui.urlFG->setColor(QColor("black"));
353 ui.urlBG->setColor(QColor("white"));
354 ui.urlBG->setEnabled(false);
355 ui.urlUseBG->setChecked(false);
361 void ColorSettingsPage::defaultMircColorCodes() {
362 ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00, Settings::Default).foreground().color());
363 ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01, Settings::Default).foreground().color());
364 ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02, Settings::Default).foreground().color());
365 ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03, Settings::Default).foreground().color());
366 ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04, Settings::Default).foreground().color());
367 ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05, Settings::Default).foreground().color());
368 ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06, Settings::Default).foreground().color());
369 ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07, Settings::Default).foreground().color());
370 ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08, Settings::Default).foreground().color());
371 ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09, Settings::Default).foreground().color());
372 ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10, Settings::Default).foreground().color());
373 ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11, Settings::Default).foreground().color());
374 ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12, Settings::Default).foreground().color());
375 ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13, Settings::Default).foreground().color());
376 ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14, Settings::Default).foreground().color());
377 ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15, Settings::Default).foreground().color());
382 void ColorSettingsPage::defaultNickview() {
383 ui.onlineStatusFG->setColor(QColor(Qt::black));
384 ui.onlineStatusBG->setColor(QColor("white"));
385 ui.onlineStatusBG->setEnabled(false);
386 ui.onlineStatusUseBG->setChecked(false);
387 ui.awayStatusFG->setColor(QColor(Qt::gray));
388 ui.awayStatusBG->setColor(QColor("white"));
389 ui.awayStatusBG->setEnabled(false);
390 ui.awayStatusUseBG->setChecked(false);
395 void ColorSettingsPage::load() {
396 QtUiSettings s("QtUi/Colors");
397 settings["InactiveActivityFG"] = s.value("inactiveActivityFG", QVariant(QColor(Qt::gray)));
398 ui.inactiveActivityFG->setColor(settings["InactiveActivityFG"].value<QColor>());
399 settings["InactiveActivityBG"] = s.value("inactiveActivityBG", QVariant(QColor(Qt::white)));
400 ui.inactiveActivityBG->setColor(settings["InactiveActivityBG"].value<QColor>());
401 settings["InactiveActivityUseBG"] = s.value("inactiveActivityUseBG");
402 ui.inactiveActivityUseBG->setChecked(settings["InactiveActivityUseBG"].toBool());
404 settings["NoActivityFG"] = s.value("noActivityFG", QVariant(QColor(Qt::black)));
405 ui.noActivityFG->setColor(settings["NoActivityFG"].value<QColor>());
406 settings["NoActivityBG"] = s.value("noActivityBG", QVariant(QColor(Qt::white)));
407 ui.noActivityBG->setColor(settings["NoActivityBG"].value<QColor>());
408 settings["NoActivityUseBG"] = s.value("noActivityUseBG");
409 ui.noActivityUseBG->setChecked(settings["NoActivityUseBG"].toBool());
411 settings["HighlightActivityFG"] = s.value("highlightActivityFG", QVariant(QColor(Qt::magenta)));
412 ui.highlightActivityFG->setColor(settings["HighlightActivityFG"].value<QColor>());
413 settings["HighlightActivityBG"] = s.value("highlightActivityBG", QVariant(QColor(Qt::white)));
414 ui.highlightActivityBG->setColor(settings["HighlightActivityBG"].value<QColor>());
415 settings["HighlightActivityUseBG"] = s.value("highlightActivityUseBG");
416 ui.highlightActivityUseBG->setChecked(settings["HighlightActivityUseBG"].toBool());
418 settings["NewMessageActivityFG"] = s.value("newMessageActivityFG", QVariant(QColor(Qt::green)));
419 ui.newMessageActivityFG->setColor(settings["NewMessageActivityFG"].value<QColor>());
420 settings["NewMessageActivityBG"] = s.value("newMessageActivityBG", QVariant(QColor(Qt::white)));
421 ui.newMessageActivityBG->setColor(settings["NewMessageActivityBG"].value<QColor>());
422 settings["NewMessageActivityUseBG"] = s.value("newMessageActivityUseBG");
423 ui.newMessageActivityUseBG->setChecked(settings["NewMessageActivityUseBG"].toBool());
425 settings["OtherActivityFG"] = s.value("otherActivityFG", QVariant(QColor(Qt::darkGreen)));
426 ui.otherActivityFG->setColor(settings["OtherActivityFG"].value<QColor>());
427 settings["OtherActivityBG"] = s.value("otherActivityBG", QVariant(QColor(Qt::white)));
428 ui.otherActivityBG->setColor(settings["OtherActivityBG"].value<QColor>());
429 settings["OtherActivityUseBG"] = s.value("otherActivityUseBG");
430 ui.otherActivityUseBG->setChecked(settings["OtherActivityUseBG"].toBool());
432 ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg).foreground().color());
433 ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color());
434 ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg).foreground().color());
435 ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg).foreground().color());
436 ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg).foreground().color());
437 ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color());
438 ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg).foreground().color());
439 ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg).foreground().color());
440 ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg).foreground().color());
441 ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg).foreground().color());
442 ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg).foreground().color());
444 settings["ActionMessageBG"] = s.value("actionMessageBG", QVariant(QColor("white")));
445 ui.actionMessageBG->setColor(settings["ActionMessageBG"].value<QColor>());
446 settings["ErrorMessageBG"] = s.value("errorMessageBG", QVariant(QColor("white")));
447 ui.errorMessageBG->setColor(settings["ErrorMessageBG"].value<QColor>());
448 settings["JoinMessageBG"] = s.value("joinMessageBG", QVariant(QColor("white")));
449 ui.joinMessageBG->setColor(settings["JoinMessageBG"].value<QColor>());
450 settings["KickMessageBG"] = s.value("kickMessageBG", QVariant(QColor("white")));
451 ui.kickMessageBG->setColor(settings["KickMessageBG"].value<QColor>());
452 settings["ModeMessageBG"] = s.value("modeMessageBG", QVariant(QColor("white")));
453 ui.modeMessageBG->setColor(settings["ModeMessageBG"].value<QColor>());
454 settings["NoticeMessageBG"] = s.value("noticeMessageBG", QVariant(QColor("white")));
455 ui.noticeMessageBG->setColor(settings["NoticeMessageBG"].value<QColor>());
456 settings["PartMessageBG"] = s.value("partMessageBG", QVariant(QColor("white")));
457 ui.partMessageBG->setColor(settings["PartMessageBG"].value<QColor>());
458 settings["PlainMessageBG"] = s.value("plainMessageBG", QVariant(QColor("white")));
459 ui.plainMessageBG->setColor(settings["PlainMessageBG"].value<QColor>());
460 settings["QuitMessageBG"] = s.value("quitMessageBG", QVariant(QColor("white")));
461 ui.quitMessageBG->setColor(settings["QuitMessageBG"].value<QColor>());
462 settings["RenameMessageBG"] = s.value("renameMessageBG", QVariant(QColor("white")));
463 ui.renameMessageBG->setColor(settings["RenameMessageBG"].value<QColor>());
464 settings["ServerMessageBG"] = s.value("serverMessageBG", QVariant(QColor("white")));
465 ui.serverMessageBG->setColor(settings["ServerMessageBG"].value<QColor>());
467 ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp).foreground().color());
468 ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender).foreground().color());
470 settings["TimestampBG"] = s.value("timestampBG", QVariant(QColor("white")));
471 ui.timestampBG->setColor(settings["TimestampBG"].value<QColor>());
472 settings["SenderBG"] = s.value("senderBG", QVariant(QColor("white")));
473 ui.senderBG->setColor(settings["SenderBG"].value<QColor>());
474 settings["NickFG"] = s.value("nickFG", QVariant(QColor("black")));
475 ui.nickFG->setColor(settings["NickFG"].value<QColor>());
476 settings["NickBG"] = s.value("nickBG", QVariant(QColor("white")));
477 ui.nickBG->setColor(settings["NickBG"].value<QColor>());
478 settings["HostmaskFG"] = s.value("hostmaskFG", QVariant(QColor("black")));
479 ui.hostmaskFG->setColor(settings["HostmaskFG"].value<QColor>());
480 settings["HostmaskBG"] = s.value("hostmaskBG", QVariant(QColor("white")));
481 ui.hostmaskBG->setColor(settings["HostmaskBG"].value<QColor>());
482 settings["ChannelnameFG"] = s.value("channelnameFG", QVariant(QColor("black")));
483 ui.channelnameFG->setColor(settings["ChannelnameFG"].value<QColor>());
484 settings["ChannelnameBG"] = s.value("channelnameBG", QVariant(QColor("white")));
485 ui.channelnameBG->setColor(settings["ChannelnameBG"].value<QColor>());
486 settings["ModeFlagsFG"] = s.value("modeFlagsFG", QVariant(QColor("black")));
487 ui.modeFlagsFG->setColor(settings["ModeFlagsFG"].value<QColor>());
488 settings["ModeFlagsBG"] = s.value("modeFlagsBG", QVariant(QColor("white")));
489 ui.modeFlagsBG->setColor(settings["ModeFlagsBG"].value<QColor>());
490 settings["UrlFG"] = s.value("urlFG", QVariant(QColor("black")));
491 ui.urlFG->setColor(settings["UrlFG"].value<QColor>());
492 settings["UrlBG"] = s.value("urlBG", QVariant(QColor("white")));
493 ui.urlBG->setColor(settings["UrlBG"].value<QColor>());
495 ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00).foreground().color());
496 ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01).foreground().color());
497 ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02).foreground().color());
498 ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03).foreground().color());
499 ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04).foreground().color());
500 ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05).foreground().color());
501 ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06).foreground().color());
502 ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07).foreground().color());
503 ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08).foreground().color());
504 ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09).foreground().color());
505 ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10).foreground().color());
506 ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11).foreground().color());
507 ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12).foreground().color());
508 ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13).foreground().color());
509 ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14).foreground().color());
510 ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15).foreground().color());
512 settings["OnlineStatusFG"] = s.value("onlineStatusFG", QVariant(QColor(Qt::black)));
513 ui.onlineStatusFG->setColor(settings["OnlineStatusFG"].value<QColor>());
514 settings["OnlineStatusBG"] = s.value("onlineStatusBG", QVariant(QColor(Qt::white)));
515 ui.onlineStatusBG->setColor(settings["OnlineStatusBG"].value<QColor>());
516 settings["OnlineStatusUseBG"] = s.value("onlineStatusUseBG");
517 ui.onlineStatusUseBG->setChecked(settings["OnlineStatusUseBG"].toBool());
519 settings["AwayStatusFG"] = s.value("awayStatusFG", QVariant(QColor(Qt::gray)));
520 ui.awayStatusFG->setColor(settings["AwayStatusFG"].value<QColor>());
521 settings["AwayStatusBG"] = s.value("awayStatusBG", QVariant(QColor(Qt::white)));
522 ui.awayStatusBG->setColor(settings["AwayStatusBG"].value<QColor>());
523 settings["AwayStatusUseBG"] = s.value("awayStatusUseBG");
524 ui.awayStatusUseBG->setChecked(settings["AwayStatusUseBG"].toBool());
525 setChangedState(false);
531 void ColorSettingsPage::save() {
532 QtUiSettings s("QtUi/Colors");
533 s.setValue("noActivityFG", ui.noActivityFG->color());
534 s.setValue("noActivityBG", ui.noActivityBG->color());
535 s.setValue("noActivityUseBG", ui.noActivityUseBG->isChecked());
536 s.setValue("inactiveActivityFG", ui.inactiveActivityFG->color());
537 s.setValue("inactiveActivityBG", ui.inactiveActivityBG->color());
538 s.setValue("inactiveActivityUseBG", ui.inactiveActivityUseBG->isChecked());
539 s.setValue("highlightActivityFG", ui.highlightActivityFG->color());
540 s.setValue("highlightActivityBG", ui.highlightActivityBG->color());
541 s.setValue("highlightActivityUseBG", ui.highlightActivityUseBG->isChecked());
542 s.setValue("newMessageActivityFG", ui.newMessageActivityFG->color());
543 s.setValue("newMessageActivityBG", ui.newMessageActivityBG->color());
544 s.setValue("newMessageActivityUseBG", ui.newMessageActivityUseBG->isChecked());
545 s.setValue("otherActivityFG", ui.otherActivityFG->color());
546 s.setValue("otherActivityBG", ui.otherActivityBG->color());
547 s.setValue("otherActivityUseBG", ui.otherActivityUseBG->isChecked());
549 saveColor(UiStyle::ErrorMsg, ui.errorMessageFG->color());
550 s.setValue("errorMessageBG", ui.errorMessageBG->color());
551 s.setValue("errorMessageUseBG", ui.errorMessageUseBG->isChecked());
552 saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color());
553 s.setValue("noticeMessageBG", ui.noticeMessageBG->color());
554 s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
555 saveColor(UiStyle::PlainMsg, ui.plainMessageFG->color());
556 s.setValue("plainMessageBG", ui.plainMessageBG->color());
557 s.setValue("plainMessageUseBG", ui.plainMessageUseBG->isChecked());
558 saveColor(UiStyle::ServerMsg, ui.serverMessageFG->color());
559 s.setValue("serverMessageBG", ui.serverMessageBG->color());
560 s.setValue("serverMessageUseBG", ui.serverMessageUseBG->isChecked());
561 saveColor(UiStyle::ActionMsg, ui.actionMessageFG->color());
562 s.setValue("actionMessageBG", ui.actionMessageBG->color());
563 s.setValue("actionMessageUseBG", ui.actionMessageUseBG->isChecked());
564 saveColor(UiStyle::JoinMsg, ui.joinMessageFG->color());
565 s.setValue("joinMessageBG", ui.joinMessageBG->color());
566 s.setValue("joinMessageUseBG", ui.joinMessageUseBG->isChecked());
567 saveColor(UiStyle::KickMsg, ui.kickMessageFG->color());
568 s.setValue("kickMessageBG", ui.kickMessageBG->color());
569 s.setValue("kickMessageUseBG", ui.kickMessageUseBG->isChecked());
570 saveColor(UiStyle::ModeMsg, ui.modeMessageFG->color());
571 s.setValue("modeMessageBG", ui.modeMessageBG->color());
572 s.setValue("modeMessageUseBG", ui.modeMessageUseBG->isChecked());
573 saveColor(UiStyle::PartMsg, ui.partMessageFG->color());
574 s.setValue("partMessageBG", ui.partMessageBG->color());
575 s.setValue("partMessageUseBG", ui.partMessageUseBG->isChecked());
576 saveColor(UiStyle::QuitMsg, ui.quitMessageFG->color());
577 s.setValue("quitMessageBG", ui.quitMessageBG->color());
578 s.setValue("quitMessageUseBG", ui.quitMessageUseBG->isChecked());
579 saveColor(UiStyle::RenameMsg, ui.renameMessageFG->color());
580 s.setValue("renameMessageBG", ui.renameMessageBG->color());
581 s.setValue("renameMessageUseBG", ui.renameMessageUseBG->isChecked());
583 saveColor(UiStyle::Timestamp, ui.timestampFG->color());
584 s.setValue("timestampBG", ui.timestampBG->color());
585 s.setValue("timestampUseBG", ui.timestampUseBG->isChecked());
586 saveColor(UiStyle::Sender, ui.senderFG->color());
587 s.setValue("senderBG", ui.senderBG->color());
588 s.setValue("senderUseBG", ui.senderUseBG->isChecked());
589 s.setValue("nickFG", ui.nickFG->color());
590 s.setValue("nickBG", ui.nickBG->color());
591 s.setValue("nickUseBG", ui.nickUseBG->isChecked());
592 s.setValue("hostmaskFG", ui.hostmaskFG->color());
593 s.setValue("hostmaskBG", ui.hostmaskBG->color());
594 s.setValue("hostmaskUseBG", ui.hostmaskUseBG->isChecked());
595 s.setValue("channelnameFG", ui.channelnameFG->color());
596 s.setValue("channelnameBG", ui.channelnameBG->color());
597 s.setValue("channelnameUseBG", ui.channelnameUseBG->isChecked());
598 s.setValue("modeFlagsFG", ui.modeFlagsFG->color());
599 s.setValue("modeFlagsBG", ui.modeFlagsBG->color());
600 s.setValue("modeFlagsUseBG", ui.modeFlagsUseBG->isChecked());
601 s.setValue("urlFG", ui.urlFG->color());
602 s.setValue("urlBG", ui.urlBG->color());
603 s.setValue("urlUseBG", ui.urlUseBG->isChecked());
605 saveColor(UiStyle::FgCol00, ui.color0->color());
606 saveColor(UiStyle::FgCol01, ui.color1->color());
607 saveColor(UiStyle::FgCol02, ui.color2->color());
608 saveColor(UiStyle::FgCol03, ui.color3->color());
609 saveColor(UiStyle::FgCol04, ui.color4->color());
610 saveColor(UiStyle::FgCol05, ui.color5->color());
611 saveColor(UiStyle::FgCol06, ui.color6->color());
612 saveColor(UiStyle::FgCol07, ui.color7->color());
613 saveColor(UiStyle::FgCol08, ui.color8->color());
614 saveColor(UiStyle::FgCol09, ui.color9->color());
615 saveColor(UiStyle::FgCol10, ui.color10->color());
616 saveColor(UiStyle::FgCol11, ui.color11->color());
617 saveColor(UiStyle::FgCol12, ui.color12->color());
618 saveColor(UiStyle::FgCol13, ui.color13->color());
619 saveColor(UiStyle::FgCol14, ui.color14->color());
620 saveColor(UiStyle::FgCol15, ui.color15->color());
622 saveColor(UiStyle::BgCol00, ui.color0->color());
623 saveColor(UiStyle::BgCol01, ui.color1->color());
624 saveColor(UiStyle::BgCol02, ui.color2->color());
625 saveColor(UiStyle::BgCol03, ui.color3->color());
626 saveColor(UiStyle::BgCol04, ui.color4->color());
627 saveColor(UiStyle::BgCol05, ui.color5->color());
628 saveColor(UiStyle::BgCol06, ui.color6->color());
629 saveColor(UiStyle::BgCol07, ui.color7->color());
630 saveColor(UiStyle::BgCol08, ui.color8->color());
631 saveColor(UiStyle::BgCol09, ui.color9->color());
632 saveColor(UiStyle::BgCol10, ui.color10->color());
633 saveColor(UiStyle::BgCol11, ui.color11->color());
634 saveColor(UiStyle::BgCol12, ui.color12->color());
635 saveColor(UiStyle::BgCol13, ui.color13->color());
636 saveColor(UiStyle::BgCol14, ui.color14->color());
637 saveColor(UiStyle::BgCol15, ui.color15->color());
639 s.setValue("onlineStatusFG", ui.onlineStatusFG->color());
640 s.setValue("onlineStatusBG", ui.onlineStatusBG->color());
641 s.setValue("onlineStatusUseBG", ui.onlineStatusUseBG->isChecked());
642 s.setValue("awayStatusFG", ui.awayStatusFG->color());
643 s.setValue("awayStatusBG", ui.awayStatusBG->color());
644 s.setValue("awayStatusUseBG", ui.awayStatusUseBG->isChecked());
646 load(); //TODO: remove when settings hash map is unnescessary
647 setChangedState(false);
650 void ColorSettingsPage::saveColor(UiStyle::FormatType formatType, const QColor &color) {
651 QTextCharFormat format = QtUi::style()->format(formatType);
652 format.setForeground(QBrush(color));
653 QtUi::style()->setFormat(formatType, format, Settings::Custom);
656 void ColorSettingsPage::widgetHasChanged() {
657 bool changed = testHasChanged();
658 if(changed != hasChanged()) {
659 setChangedState(changed);
665 bool ColorSettingsPage::testHasChanged() {
666 if(settings["InactiveActivityFG"].value<QColor>() != ui.inactiveActivityFG->color()) return true;
667 if(settings["InactiveActivityBG"].value<QColor>() != ui.inactiveActivityBG->color()) return true;
668 if(settings["InactiveActivityUseBG"].toBool() != ui.inactiveActivityUseBG->isChecked()) return true;
669 if(settings["NoActivityFG"].value<QColor>() != ui.noActivityFG->color()) return true;
670 if(settings["NoActivityBG"].value<QColor>() != ui.noActivityBG->color()) return true;
671 if(settings["NoActivityUseBG"].toBool() != ui.noActivityUseBG->isChecked()) return true;
672 if(settings["HighlightActivityFG"].value<QColor>() != ui.highlightActivityFG->color()) return true;
673 if(settings["HighlightActivityBG"].value<QColor>() != ui.highlightActivityBG->color()) return true;
674 if(settings["HighlightActivityUseBG"].toBool() != ui.highlightActivityUseBG->isChecked()) return true;
675 if(settings["NewMessageActivityFG"].value<QColor>() != ui.newMessageActivityFG->color()) return true;
676 if(settings["NewMessageActivityBG"].value<QColor>() != ui.newMessageActivityBG->color()) return true;
677 if(settings["NewMessageActivityUseBG"].toBool() != ui.newMessageActivityUseBG->isChecked()) return true;
678 if(settings["OtherActivityFG"].value<QColor>() != ui.otherActivityFG->color()) return true;
679 if(settings["OtherActivityBG"].value<QColor>() != ui.otherActivityBG->color()) return true;
680 if(settings["OtherActivityUseBG"].toBool() != ui.otherActivityUseBG->isChecked()) return true;
682 if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
683 if(settings["ErrorMessageBG"].value<QColor>() != ui.errorMessageBG->color()) return true;
684 if(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color() != ui.noticeMessageFG->color()) return true;
685 if(settings["NoticeMessageBG"].value<QColor>() != ui.noticeMessageBG->color()) return true;
686 if(QtUi::style()->format(UiStyle::PlainMsg).foreground().color() != ui.plainMessageFG->color()) return true;
687 if(settings["PlainMessageBG"].value<QColor>() != ui.plainMessageBG->color()) return true;
688 if(QtUi::style()->format(UiStyle::ServerMsg).foreground().color() != ui.serverMessageFG->color()) return true;
689 if(settings["ServerMessageBG"].value<QColor>() != ui.serverMessageBG->color()) return true;
690 if(QtUi::style()->format(UiStyle::ActionMsg).foreground().color() != ui.actionMessageFG->color()) return true;
691 if(settings["ActionMessageBG"].value<QColor>() != ui.actionMessageBG->color()) return true;
692 if(QtUi::style()->format(UiStyle::JoinMsg).foreground().color() != ui.joinMessageFG->color()) return true;
693 if(settings["JoinMessageBG"].value<QColor>() != ui.joinMessageBG->color()) return true;
694 if(QtUi::style()->format(UiStyle::KickMsg).foreground().color() != ui.kickMessageFG->color()) return true;
695 if(settings["KickMessageBG"].value<QColor>() != ui.kickMessageBG->color()) return true;
696 if(QtUi::style()->format(UiStyle::ModeMsg).foreground().color() != ui.modeMessageFG->color()) return true;
697 if(settings["ModeMessageBG"].value<QColor>() != ui.modeMessageBG->color()) return true;
698 if(QtUi::style()->format(UiStyle::PartMsg).foreground().color() != ui.partMessageFG->color()) return true;
699 if(settings["PartMessageBG"].value<QColor>() != ui.partMessageBG->color()) return true;
700 if(QtUi::style()->format(UiStyle::QuitMsg).foreground().color() != ui.quitMessageFG->color()) return true;
701 if(settings["QuitMessageBG"].value<QColor>() != ui.quitMessageBG->color()) return true;
702 if(QtUi::style()->format(UiStyle::RenameMsg).foreground().color() != ui.renameMessageFG->color()) return true;
703 if(settings["RenameMessageBG"].value<QColor>() != ui.renameMessageBG->color()) return true;
705 if(QtUi::style()->format(UiStyle::Timestamp).foreground().color() != ui.timestampFG->color()) return true;
706 if(QtUi::style()->format(UiStyle::Sender).foreground().color() != ui.senderFG->color()) return true;
708 if(settings["TimestampBG"].value<QColor>() != ui.timestampBG->color()) return true;
709 if(settings["SenderBG"].value<QColor>() != ui.senderBG->color()) return true;
710 if(settings["NickFG"].value<QColor>() != ui.nickFG->color()) return true;
711 if(settings["NickBG"].value<QColor>() != ui.nickBG->color()) return true;
712 if(settings["HostmaskFG"].value<QColor>() != ui.hostmaskFG->color()) return true;
713 if(settings["HostmaskBG"].value<QColor>() != ui.hostmaskBG->color()) return true;
714 if(settings["ChannelnameFG"].value<QColor>() != ui.channelnameFG->color()) return true;
715 if(settings["ChannelnameBG"].value<QColor>() != ui.channelnameBG->color()) return true;
716 if(settings["ModeFlagsFG"].value<QColor>() != ui.modeFlagsFG->color()) return true;
717 if(settings["ModeFlagsBG"].value<QColor>() != ui.modeFlagsBG->color()) return true;
718 if(settings["UrlFG"].value<QColor>() != ui.urlFG->color()) return true;
719 if(settings["UrlBG"].value<QColor>() != ui.urlBG->color()) return true;
721 if(QtUi::style()->format(UiStyle::FgCol00).foreground().color() != ui.color0->color()) return true;
722 if(QtUi::style()->format(UiStyle::FgCol01).foreground().color() != ui.color1->color()) return true;
723 if(QtUi::style()->format(UiStyle::FgCol02).foreground().color() != ui.color2->color()) return true;
724 if(QtUi::style()->format(UiStyle::FgCol03).foreground().color() != ui.color3->color()) return true;
725 if(QtUi::style()->format(UiStyle::FgCol04).foreground().color() != ui.color4->color()) return true;
726 if(QtUi::style()->format(UiStyle::FgCol05).foreground().color() != ui.color5->color()) return true;
727 if(QtUi::style()->format(UiStyle::FgCol06).foreground().color() != ui.color6->color()) return true;
728 if(QtUi::style()->format(UiStyle::FgCol07).foreground().color() != ui.color7->color()) return true;
729 if(QtUi::style()->format(UiStyle::FgCol08).foreground().color() != ui.color8->color()) return true;
730 if(QtUi::style()->format(UiStyle::FgCol09).foreground().color() != ui.color9->color()) return true;
731 if(QtUi::style()->format(UiStyle::FgCol10).foreground().color() != ui.color10->color()) return true;
732 if(QtUi::style()->format(UiStyle::FgCol11).foreground().color() != ui.color11->color()) return true;
733 if(QtUi::style()->format(UiStyle::FgCol12).foreground().color() != ui.color12->color()) return true;
734 if(QtUi::style()->format(UiStyle::FgCol13).foreground().color() != ui.color13->color()) return true;
735 if(QtUi::style()->format(UiStyle::FgCol14).foreground().color() != ui.color14->color()) return true;
736 if(QtUi::style()->format(UiStyle::FgCol15).foreground().color() != ui.color15->color()) return true;
738 if(settings["OnlineStatusFG"].value<QColor>() != ui.onlineStatusFG->color()) return true;
739 if(settings["OnlineStatusBG"].value<QColor>() != ui.onlineStatusBG->color()) return true;
740 if(settings["OnlineStatusUseBG"].toBool() != ui.onlineStatusUseBG->isChecked()) return true;
741 if(settings["AwayStatusFG"].value<QColor>() != ui.awayStatusFG->color()) return true;
742 if(settings["AwayStatusBG"].value<QColor>() != ui.awayStatusBG->color()) return true;
743 if(settings["AwayStatusUseBG"].toBool() != ui.awayStatusUseBG->isChecked()) return true;
748 void ColorSettingsPage::chooseColor(QWidget *widget) {
749 ColorButton *button = qobject_cast<ColorButton *>(widget);
751 QColor color = QColorDialog::getColor(button->color(), this);
752 if(color.isValid()) {
753 button->setColor(color);
758 void ColorSettingsPage::chatviewPreview() {
759 //TODO: update chatviewPreview
762 void ColorSettingsPage::bufferviewPreview() {
763 ui.bufferviewPreview->clear();
764 ui.bufferviewPreview->setColumnCount(1);
765 ui.bufferviewPreview->setHeaderLabels(QStringList("Buffers"));
767 QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("network")));
768 ui.bufferviewPreview->insertTopLevelItem(0, topLevelItem);
769 topLevelItem->setForeground(0, QBrush(ui.noActivityFG->color()));
770 if(ui.noActivityUseBG->isChecked())
771 topLevelItem->setBackground(0, QBrush(ui.noActivityBG->color()));
774 QList<QTreeWidgetItem *> items;
775 QTreeWidgetItem *statusBuffer = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Status Buffer")));
776 items.append(statusBuffer);
777 statusBuffer->setForeground(0, QBrush(ui.noActivityFG->color()));
778 if(ui.noActivityUseBG->isChecked())
779 statusBuffer->setBackground(0, QBrush(ui.noActivityBG->color()));
781 QTreeWidgetItem *inactiveActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#inactive channel")));
782 items.append(inactiveActivity);
783 inactiveActivity->setForeground(0, QBrush(ui.inactiveActivityFG->color()));
784 if(ui.inactiveActivityUseBG->isChecked())
785 inactiveActivity->setBackground(0, QBrush(ui.inactiveActivityBG->color()));
787 QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with no activity")));
788 items.append(noActivity);
789 noActivity->setForeground(0, QBrush(ui.noActivityFG->color()));
790 if(ui.noActivityUseBG->isChecked())
791 noActivity->setBackground(0, QBrush(ui.noActivityBG->color()));
793 QTreeWidgetItem *highlightActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with highlight")));
794 items.append(highlightActivity);
795 highlightActivity->setForeground(0, QBrush(ui.highlightActivityFG->color()));
796 if(ui.highlightActivityUseBG->isChecked())
797 highlightActivity->setBackground(0, QBrush(ui.highlightActivityBG->color()));
799 QTreeWidgetItem *newMessageActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with new message")));
800 items.append(newMessageActivity);
801 newMessageActivity->setForeground(0, QBrush(ui.newMessageActivityFG->color()));
802 if(ui.newMessageActivityUseBG->isChecked())
803 newMessageActivity->setBackground(0, QBrush(ui.newMessageActivityBG->color()));
805 QTreeWidgetItem *otherActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with other activity")));
806 items.append(otherActivity);
807 otherActivity->setForeground(0, QBrush(ui.otherActivityFG->color()));
808 if(ui.otherActivityUseBG->isChecked())
809 otherActivity->setBackground(0, QBrush(ui.otherActivityBG->color()));
811 topLevelItem->insertChildren(0, items);
812 ui.bufferviewPreview->expandItem(topLevelItem);