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.errorMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
70 connect(ui.noticeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
71 connect(ui.noticeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
72 connect(ui.noticeMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
73 connect(ui.plainMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
74 connect(ui.plainMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
75 connect(ui.plainMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
76 connect(ui.serverMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
77 connect(ui.serverMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
78 connect(ui.serverMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
79 connect(ui.actionMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
80 connect(ui.actionMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
81 connect(ui.actionMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
82 connect(ui.joinMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
83 connect(ui.joinMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
84 connect(ui.joinMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
85 connect(ui.kickMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
86 connect(ui.kickMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
87 connect(ui.kickMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
88 connect(ui.modeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
89 connect(ui.modeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
90 connect(ui.modeMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
91 connect(ui.partMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
92 connect(ui.partMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
93 connect(ui.partMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
94 connect(ui.quitMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
95 connect(ui.quitMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
96 connect(ui.quitMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
97 connect(ui.renameMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
98 connect(ui.renameMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
99 connect(ui.renameMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
100 connect(ui.highlightColor, SIGNAL(clicked()), mapper, SLOT(map()));
102 mapper->setMapping(ui.errorMessageFG, ui.errorMessageFG);
103 mapper->setMapping(ui.errorMessageBG, ui.errorMessageBG);
104 mapper->setMapping(ui.noticeMessageFG, ui.noticeMessageFG);
105 mapper->setMapping(ui.noticeMessageBG, ui.noticeMessageBG);
106 mapper->setMapping(ui.plainMessageFG, ui.plainMessageFG);
107 mapper->setMapping(ui.plainMessageBG, ui.plainMessageBG);
108 mapper->setMapping(ui.serverMessageFG, ui.serverMessageFG);
109 mapper->setMapping(ui.serverMessageBG, ui.serverMessageBG);
110 mapper->setMapping(ui.actionMessageFG, ui.actionMessageFG);
111 mapper->setMapping(ui.actionMessageBG, ui.actionMessageBG);
112 mapper->setMapping(ui.joinMessageFG, ui.joinMessageFG);
113 mapper->setMapping(ui.joinMessageBG, ui.joinMessageBG);
114 mapper->setMapping(ui.kickMessageFG, ui.kickMessageFG);
115 mapper->setMapping(ui.kickMessageBG, ui.kickMessageBG);
116 mapper->setMapping(ui.modeMessageFG, ui.modeMessageFG);
117 mapper->setMapping(ui.modeMessageBG, ui.modeMessageBG);
118 mapper->setMapping(ui.partMessageFG, ui.partMessageFG);
119 mapper->setMapping(ui.partMessageBG, ui.partMessageBG);
120 mapper->setMapping(ui.quitMessageFG, ui.quitMessageFG);
121 mapper->setMapping(ui.quitMessageBG, ui.quitMessageBG);
122 mapper->setMapping(ui.renameMessageFG, ui.renameMessageFG);
123 mapper->setMapping(ui.renameMessageBG, ui.renameMessageBG);
124 mapper->setMapping(ui.highlightColor, ui.highlightColor);
126 //Message Layout tab:
127 connect(ui.timestampFG, SIGNAL(clicked()), mapper, SLOT(map()));
128 connect(ui.timestampBG, SIGNAL(clicked()), mapper, SLOT(map()));
129 connect(ui.timestampUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
130 connect(ui.senderFG, SIGNAL(clicked()), mapper, SLOT(map()));
131 connect(ui.senderBG, SIGNAL(clicked()), mapper, SLOT(map()));
132 connect(ui.senderUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
133 connect(ui.nickFG, SIGNAL(clicked()), mapper, SLOT(map()));
134 connect(ui.nickBG, SIGNAL(clicked()), mapper, SLOT(map()));
135 connect(ui.nickUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
136 connect(ui.hostmaskFG, SIGNAL(clicked()), mapper, SLOT(map()));
137 connect(ui.hostmaskBG, SIGNAL(clicked()), mapper, SLOT(map()));
138 connect(ui.hostmaskUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
139 connect(ui.channelnameFG, SIGNAL(clicked()), mapper, SLOT(map()));
140 connect(ui.channelnameBG, SIGNAL(clicked()), mapper, SLOT(map()));
141 connect(ui.channelnameUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
142 connect(ui.modeFlagsFG, SIGNAL(clicked()), mapper, SLOT(map()));
143 connect(ui.modeFlagsBG, SIGNAL(clicked()), mapper, SLOT(map()));
144 connect(ui.modeFlagsUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
145 connect(ui.urlFG, SIGNAL(clicked()), mapper, SLOT(map()));
146 connect(ui.urlBG, SIGNAL(clicked()), mapper, SLOT(map()));
147 connect(ui.urlUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
149 mapper->setMapping(ui.timestampFG, ui.timestampFG);
150 mapper->setMapping(ui.timestampBG, ui.timestampBG);
151 mapper->setMapping(ui.senderFG, ui.senderFG);
152 mapper->setMapping(ui.senderBG, ui.senderBG);
153 mapper->setMapping(ui.nickFG, ui.nickFG);
154 mapper->setMapping(ui.nickBG, ui.nickBG);
155 mapper->setMapping(ui.hostmaskFG, ui.hostmaskFG);
156 mapper->setMapping(ui.hostmaskBG, ui.hostmaskBG);
157 mapper->setMapping(ui.channelnameFG, ui.channelnameFG);
158 mapper->setMapping(ui.channelnameBG, ui.channelnameBG);
159 mapper->setMapping(ui.modeFlagsFG, ui.modeFlagsFG);
160 mapper->setMapping(ui.modeFlagsBG, ui.modeFlagsBG);
161 mapper->setMapping(ui.urlFG, ui.urlFG);
162 mapper->setMapping(ui.urlBG, ui.urlBG);
164 //Mirc Color Codes tab:
165 connect(ui.color0, SIGNAL(clicked()), mapper, SLOT(map()));
166 connect(ui.color1, SIGNAL(clicked()), mapper, SLOT(map()));
167 connect(ui.color2, SIGNAL(clicked()), mapper, SLOT(map()));
168 connect(ui.color3, SIGNAL(clicked()), mapper, SLOT(map()));
169 connect(ui.color4, SIGNAL(clicked()), mapper, SLOT(map()));
170 connect(ui.color5, SIGNAL(clicked()), mapper, SLOT(map()));
171 connect(ui.color6, SIGNAL(clicked()), mapper, SLOT(map()));
172 connect(ui.color7, SIGNAL(clicked()), mapper, SLOT(map()));
173 connect(ui.color8, SIGNAL(clicked()), mapper, SLOT(map()));
174 connect(ui.color9, SIGNAL(clicked()), mapper, SLOT(map()));
175 connect(ui.color10, SIGNAL(clicked()), mapper, SLOT(map()));
176 connect(ui.color11, SIGNAL(clicked()), mapper, SLOT(map()));
177 connect(ui.color12, SIGNAL(clicked()), mapper, SLOT(map()));
178 connect(ui.color13, SIGNAL(clicked()), mapper, SLOT(map()));
179 connect(ui.color14, SIGNAL(clicked()), mapper, SLOT(map()));
180 connect(ui.color15, SIGNAL(clicked()), mapper, SLOT(map()));
182 mapper->setMapping(ui.color0, ui.color0);
183 mapper->setMapping(ui.color1, ui.color1);
184 mapper->setMapping(ui.color2, ui.color2);
185 mapper->setMapping(ui.color3, ui.color3);
186 mapper->setMapping(ui.color4, ui.color4);
187 mapper->setMapping(ui.color5, ui.color5);
188 mapper->setMapping(ui.color6, ui.color6);
189 mapper->setMapping(ui.color7, ui.color7);
190 mapper->setMapping(ui.color8, ui.color8);
191 mapper->setMapping(ui.color9, ui.color9);
192 mapper->setMapping(ui.color10, ui.color10);
193 mapper->setMapping(ui.color11, ui.color11);
194 mapper->setMapping(ui.color12, ui.color12);
195 mapper->setMapping(ui.color13, ui.color13);
196 mapper->setMapping(ui.color14, ui.color14);
197 mapper->setMapping(ui.color15, ui.color15);
200 connect(ui.onlineStatusFG, SIGNAL(clicked()), mapper, SLOT(map()));
201 connect(ui.onlineStatusBG, SIGNAL(clicked()), mapper, SLOT(map()));
202 connect(ui.onlineStatusBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
203 connect(ui.awayStatusFG, SIGNAL(clicked()), mapper, SLOT(map()));
204 connect(ui.awayStatusBG, SIGNAL(clicked()), mapper, SLOT(map()));
205 connect(ui.awayStatusBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
207 mapper->setMapping(ui.onlineStatusFG, ui.onlineStatusFG);
208 mapper->setMapping(ui.onlineStatusBG, ui.onlineStatusBG);
209 mapper->setMapping(ui.awayStatusFG, ui.awayStatusFG);
210 mapper->setMapping(ui.awayStatusBG, ui.awayStatusBG);
212 connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseColor(QWidget *)));
214 //disable unused buttons:
216 ui.inactiveActivityUseBG->setEnabled(false);
217 ui.noActivityUseBG->setEnabled(false);
218 ui.highlightActivityUseBG->setEnabled(false);
219 ui.newMessageActivityUseBG->setEnabled(false);
220 ui.otherActivityUseBG->setEnabled(false);
222 ui.nickFG->setEnabled(false);
223 ui.nickUseBG->setEnabled(false);
224 ui.hostmaskFG->setEnabled(false);
225 ui.hostmaskUseBG->setEnabled(false);
226 ui.channelnameFG->setEnabled(false);
227 ui.channelnameUseBG->setEnabled(false);
228 ui.modeFlagsFG->setEnabled(false);
229 ui.modeFlagsUseBG->setEnabled(false);
230 ui.urlFG->setEnabled(false);
231 ui.urlUseBG->setEnabled(false);
233 ui.onlineStatusUseBG->setEnabled(false);
234 ui.awayStatusUseBG->setEnabled(false);
238 bool ColorSettingsPage::hasDefaults() const {
242 void ColorSettingsPage::defaults() {
244 defaultServerActivity();
245 defaultUserActivity();
247 defaultMircColorCodes();
255 void ColorSettingsPage::defaultBufferview() {
256 ui.inactiveActivityFG->setColor(QColor(Qt::gray));
257 ui.inactiveActivityBG->setColor(QColor(Qt::white));
258 ui.inactiveActivityBG->setEnabled(false);
259 ui.inactiveActivityUseBG->setChecked(false);
260 ui.noActivityFG->setColor(QColor(Qt::black));
261 ui.noActivityBG->setColor(QColor(Qt::white));
262 ui.noActivityBG->setEnabled(false);
263 ui.noActivityUseBG->setChecked(false);
264 ui.highlightActivityFG->setColor(QColor(Qt::magenta));
265 ui.highlightActivityBG->setColor(QColor(Qt::white));
266 ui.highlightActivityBG->setEnabled(false);
267 ui.highlightActivityUseBG->setChecked(false);
268 ui.newMessageActivityFG->setColor(QColor(Qt::green));
269 ui.newMessageActivityBG->setColor(QColor(Qt::white));
270 ui.newMessageActivityBG->setEnabled(false);
271 ui.newMessageActivityUseBG->setChecked(false);
272 ui.otherActivityFG->setColor(QColor(Qt::darkGreen));
273 ui.otherActivityBG->setColor(QColor(Qt::white));
274 ui.otherActivityBG->setEnabled(false);
275 ui.otherActivityUseBG->setChecked(false);
278 void ColorSettingsPage::defaultServerActivity() {
279 ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg, Settings::Default).foreground().color());
280 ui.errorMessageBG->setColor(QColor("white"));
281 ui.errorMessageBG->setEnabled(false);
282 ui.errorMessageUseBG->setChecked(false);
283 ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg, Settings::Default).foreground().color());
284 ui.noticeMessageBG->setColor(QColor("white"));
285 ui.noticeMessageBG->setEnabled(false);
286 ui.noticeMessageUseBG->setChecked(false);
287 ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg, Settings::Default).foreground().color());
288 ui.plainMessageBG->setColor(QColor("white"));
289 ui.plainMessageBG->setEnabled(false);
290 ui.plainMessageUseBG->setChecked(false);
291 ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg, Settings::Default).foreground().color());
292 ui.serverMessageBG->setColor(QColor("white"));
293 ui.serverMessageBG->setEnabled(false);
294 ui.serverMessageUseBG->setChecked(false);
295 ui.highlightColor->setColor(QColor("lightcoral"));
298 void ColorSettingsPage::defaultUserActivity() {
299 ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg, Settings::Default).foreground().color());
300 ui.actionMessageBG->setColor(QColor("white"));
301 ui.actionMessageBG->setEnabled(false);
302 ui.actionMessageUseBG->setChecked(false);
303 ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg, Settings::Default).foreground().color());
304 ui.joinMessageBG->setColor(QColor("white"));
305 ui.joinMessageBG->setEnabled(false);
306 ui.joinMessageUseBG->setChecked(false);
307 ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg, Settings::Default).foreground().color());
308 ui.kickMessageBG->setColor(QColor("white"));
309 ui.kickMessageBG->setEnabled(false);
310 ui.kickMessageUseBG->setChecked(false);
311 ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg, Settings::Default).foreground().color());
312 ui.modeMessageBG->setColor(QColor("white"));
313 ui.modeMessageBG->setEnabled(false);
314 ui.modeMessageUseBG->setChecked(false);
315 ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg, Settings::Default).foreground().color());
316 ui.partMessageBG->setColor(QColor("white"));
317 ui.partMessageBG->setEnabled(false);
318 ui.partMessageUseBG->setChecked(false);
319 ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg, Settings::Default).foreground().color());
320 ui.quitMessageBG->setColor(QColor("white"));
321 ui.quitMessageBG->setEnabled(false);
322 ui.quitMessageUseBG->setChecked(false);
323 ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg, Settings::Default).foreground().color());
324 ui.renameMessageBG->setColor(QColor("white"));
325 ui.renameMessageBG->setEnabled(false);
326 ui.renameMessageUseBG->setChecked(false);
329 void ColorSettingsPage::defaultMessage() {
330 ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp, Settings::Default).foreground().color());
331 ui.timestampBG->setColor(QColor("white"));
332 ui.timestampBG->setEnabled(false);
333 ui.timestampUseBG->setChecked(false);
334 ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender, Settings::Default).foreground().color());
335 ui.senderBG->setColor(QColor("white"));
336 ui.senderBG->setEnabled(false);
337 ui.senderUseBG->setChecked(false);
340 ui.nickFG->setColor(QColor("black"));
341 ui.nickBG->setColor(QColor("white"));
342 ui.nickBG->setEnabled(false);
343 ui.nickUseBG->setChecked(false);
344 ui.hostmaskFG->setColor(QColor("black"));
345 ui.hostmaskBG->setColor(QColor("white"));
346 ui.hostmaskBG->setEnabled(false);
347 ui.hostmaskUseBG->setChecked(false);
348 ui.channelnameFG->setColor(QColor("black"));
349 ui.channelnameBG->setColor(QColor("white"));
350 ui.channelnameBG->setEnabled(false);
351 ui.channelnameUseBG->setChecked(false);
352 ui.modeFlagsFG->setColor(QColor("black"));
353 ui.modeFlagsBG->setColor(QColor("white"));
354 ui.modeFlagsBG->setEnabled(false);
355 ui.modeFlagsUseBG->setChecked(false);
356 ui.urlFG->setColor(QColor("black"));
357 ui.urlBG->setColor(QColor("white"));
358 ui.urlBG->setEnabled(false);
359 ui.urlUseBG->setChecked(false);
363 void ColorSettingsPage::defaultMircColorCodes() {
364 ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00, Settings::Default).foreground().color());
365 ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01, Settings::Default).foreground().color());
366 ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02, Settings::Default).foreground().color());
367 ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03, Settings::Default).foreground().color());
368 ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04, Settings::Default).foreground().color());
369 ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05, Settings::Default).foreground().color());
370 ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06, Settings::Default).foreground().color());
371 ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07, Settings::Default).foreground().color());
372 ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08, Settings::Default).foreground().color());
373 ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09, Settings::Default).foreground().color());
374 ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10, Settings::Default).foreground().color());
375 ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11, Settings::Default).foreground().color());
376 ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12, Settings::Default).foreground().color());
377 ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13, Settings::Default).foreground().color());
378 ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14, Settings::Default).foreground().color());
379 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);
393 void ColorSettingsPage::load() {
394 QtUiSettings s("QtUiStyle/Colors");
395 settings["InactiveActivityFG"] = s.value("inactiveActivityFG", QVariant(QColor(Qt::gray)));
396 ui.inactiveActivityFG->setColor(settings["InactiveActivityFG"].value<QColor>());
397 settings["InactiveActivityBG"] = s.value("inactiveActivityBG", QVariant(QColor(Qt::white)));
398 ui.inactiveActivityBG->setColor(settings["InactiveActivityBG"].value<QColor>());
399 settings["InactiveActivityUseBG"] = s.value("inactiveActivityUseBG");
400 ui.inactiveActivityUseBG->setChecked(settings["InactiveActivityUseBG"].toBool());
402 settings["NoActivityFG"] = s.value("noActivityFG", QVariant(QColor(Qt::black)));
403 ui.noActivityFG->setColor(settings["NoActivityFG"].value<QColor>());
404 settings["NoActivityBG"] = s.value("noActivityBG", QVariant(QColor(Qt::white)));
405 ui.noActivityBG->setColor(settings["NoActivityBG"].value<QColor>());
406 settings["NoActivityUseBG"] = s.value("noActivityUseBG");
407 ui.noActivityUseBG->setChecked(settings["NoActivityUseBG"].toBool());
409 settings["HighlightActivityFG"] = s.value("highlightActivityFG", QVariant(QColor(Qt::magenta)));
410 ui.highlightActivityFG->setColor(settings["HighlightActivityFG"].value<QColor>());
411 settings["HighlightActivityBG"] = s.value("highlightActivityBG", QVariant(QColor(Qt::white)));
412 ui.highlightActivityBG->setColor(settings["HighlightActivityBG"].value<QColor>());
413 settings["HighlightActivityUseBG"] = s.value("highlightActivityUseBG");
414 ui.highlightActivityUseBG->setChecked(settings["HighlightActivityUseBG"].toBool());
416 settings["NewMessageActivityFG"] = s.value("newMessageActivityFG", QVariant(QColor(Qt::green)));
417 ui.newMessageActivityFG->setColor(settings["NewMessageActivityFG"].value<QColor>());
418 settings["NewMessageActivityBG"] = s.value("newMessageActivityBG", QVariant(QColor(Qt::white)));
419 ui.newMessageActivityBG->setColor(settings["NewMessageActivityBG"].value<QColor>());
420 settings["NewMessageActivityUseBG"] = s.value("newMessageActivityUseBG");
421 ui.newMessageActivityUseBG->setChecked(settings["NewMessageActivityUseBG"].toBool());
423 settings["OtherActivityFG"] = s.value("otherActivityFG", QVariant(QColor(Qt::darkGreen)));
424 ui.otherActivityFG->setColor(settings["OtherActivityFG"].value<QColor>());
425 settings["OtherActivityBG"] = s.value("otherActivityBG", QVariant(QColor(Qt::white)));
426 ui.otherActivityBG->setColor(settings["OtherActivityBG"].value<QColor>());
427 settings["OtherActivityUseBG"] = s.value("otherActivityUseBG");
428 ui.otherActivityUseBG->setChecked(settings["OtherActivityUseBG"].toBool());
430 ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg).foreground().color());
431 ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color());
432 ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg).foreground().color());
433 ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg).foreground().color());
434 ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg).foreground().color());
435 ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color());
436 ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg).foreground().color());
437 ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg).foreground().color());
438 ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg).foreground().color());
439 ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg).foreground().color());
440 ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg).foreground().color());
442 ui.actionMessageBG->setColor(QtUi::style()->format(UiStyle::ActionMsg).background().color());
443 ui.errorMessageBG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).background().color());
444 ui.joinMessageBG->setColor(QtUi::style()->format(UiStyle::JoinMsg).background().color());
445 ui.kickMessageBG->setColor(QtUi::style()->format(UiStyle::KickMsg).background().color());
446 ui.modeMessageBG->setColor(QtUi::style()->format(UiStyle::ModeMsg).background().color());
447 ui.noticeMessageBG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).background().color());
448 ui.partMessageBG->setColor(QtUi::style()->format(UiStyle::PartMsg).background().color());
449 ui.plainMessageBG->setColor(QtUi::style()->format(UiStyle::PlainMsg).background().color());
450 ui.quitMessageBG->setColor(QtUi::style()->format(UiStyle::QuitMsg).background().color());
451 ui.renameMessageBG->setColor(QtUi::style()->format(UiStyle::RenameMsg).background().color());
452 ui.serverMessageBG->setColor(QtUi::style()->format(UiStyle::ServerMsg).background().color());
454 // FIXME set to false if appropriate
455 settings["ActionMessageUseBG"] = s.value("actionMessageUseBG", QVariant(false));
456 if(settings["ActionMessageUseBG"].toBool()) {
457 ui.actionMessageUseBG->setChecked(true);
458 ui.actionMessageBG->setEnabled(true);
460 settings["ErrorMessageUseBG"] = s.value("errorMessageUseBG", QVariant(false));
461 if(settings["ErrorMessageUseBG"].toBool()) {
462 ui.errorMessageUseBG->setChecked(true);
463 ui.errorMessageBG->setEnabled(true);
465 settings["JoinMessageUseBG"] = s.value("joinMessageUseBG", QVariant(false));
466 if(settings["JoinMessageUseBG"].toBool()) {
467 ui.joinMessageUseBG->setChecked(true);
468 ui.joinMessageBG->setEnabled(true);
470 settings["KickMessageUseBG"] = s.value("kickMessageUseBG", QVariant(false));
471 if(settings["KickMessageUseBG"].toBool()) {
472 ui.kickMessageUseBG->setChecked(true);
473 ui.kickMessageBG->setEnabled(true);
475 settings["ModeMessageUseBG"] = s.value("modeMessageUseBG", QVariant(false));
476 if(settings["ModeMessageUseBG"].toBool()) {
477 ui.modeMessageUseBG->setChecked(true);
478 ui.modeMessageBG->setEnabled(true);
480 settings["NoticeMessageUseBG"] = s.value("noticeMessageUseBG", QVariant(false));
481 if(settings["NoticeMessageUseBG"].toBool()) {
482 ui.noticeMessageUseBG->setChecked(true);
483 ui.noticeMessageBG->setEnabled(true);
485 settings["PartMessageUseBG"] = s.value("partMessageUseBG", QVariant(false));
486 if(settings["PartMessageUseBG"].toBool()) {
487 ui.partMessageUseBG->setChecked(true);
488 ui.partMessageBG->setEnabled(true);
490 settings["PlainMessageUseBG"] = s.value("plainMessageUseBG", QVariant(false));
491 if(settings["PlainMessageUseBG"].toBool()) {
492 ui.plainMessageUseBG->setChecked(true);
493 ui.plainMessageBG->setEnabled(true);
495 settings["QuitMessageUseBG"] = s.value("quitMessageUseBG", QVariant(false));
496 if(settings["QuitMessageUseBG"].toBool()) {
497 ui.quitMessageUseBG->setChecked(true);
498 ui.quitMessageBG->setEnabled(true);
500 settings["RenameMessageUseBG"] = s.value("renameMessageUseBG", QVariant(false));
501 if(settings["RenameMessageUseBG"].toBool()) {
502 ui.renameMessageUseBG->setChecked(true);
503 ui.renameMessageBG->setEnabled(true);
505 settings["ServerMessageUseBG"] = s.value("serverMessageUseBG", QVariant(false));
506 if(settings["ServerMessageUseBG"].toBool()) {
507 ui.serverMessageUseBG->setChecked(true);
508 ui.serverMessageBG->setEnabled(true);
511 ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp).foreground().color());
512 ui.timestampBG->setColor(QtUi::style()->format(UiStyle::Timestamp).background().color());
513 ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender).foreground().color());
514 ui.senderBG->setColor(QtUi::style()->format(UiStyle::Sender).background().color());
516 settings["TimestampUseBG"] = s.value("timestampUseBG", QVariant(false));
517 if(settings["TimestampUseBG"].toBool()) {
518 ui.timestampUseBG->setChecked(true);
519 ui.timestampBG->setEnabled(true);
521 settings["SenderUseBG"] = s.value("senderUseBG", QVariant(false));
522 if(settings["SenderUseBG"].toBool()) {
523 ui.senderUseBG->setChecked(true);
524 ui.senderBG ->setEnabled(true);
527 ui.nickFG->setColor(QtUi::style()->format(UiStyle::Nick).foreground().color());
528 ui.nickBG->setColor(QtUi::style()->format(UiStyle::Nick).background().color());
529 ui.hostmaskFG->setColor(QtUi::style()->format(UiStyle::Hostmask).foreground().color());
530 ui.hostmaskBG->setColor(QtUi::style()->format(UiStyle::Hostmask).background().color());
531 ui.channelnameFG->setColor(QtUi::style()->format(UiStyle::ChannelName).foreground().color());
532 ui.channelnameBG->setColor(QtUi::style()->format(UiStyle::ChannelName).background().color());
533 ui.modeFlagsFG->setColor(QtUi::style()->format(UiStyle::ModeFlags).foreground().color());
534 ui.modeFlagsBG->setColor(QtUi::style()->format(UiStyle::ModeFlags).background().color());
535 ui.urlFG->setColor(QtUi::style()->format(UiStyle::Url).foreground().color());
536 ui.urlBG->setColor(QtUi::style()->format(UiStyle::Url).background().color());
538 ui.highlightColor->setColor(QtUi::style()->highlightColor());
540 ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00).foreground().color());
541 ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01).foreground().color());
542 ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02).foreground().color());
543 ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03).foreground().color());
544 ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04).foreground().color());
545 ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05).foreground().color());
546 ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06).foreground().color());
547 ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07).foreground().color());
548 ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08).foreground().color());
549 ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09).foreground().color());
550 ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10).foreground().color());
551 ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11).foreground().color());
552 ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12).foreground().color());
553 ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13).foreground().color());
554 ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14).foreground().color());
555 ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15).foreground().color());
557 settings["OnlineStatusFG"] = s.value("onlineStatusFG", QVariant(QColor(Qt::black)));
558 ui.onlineStatusFG->setColor(settings["OnlineStatusFG"].value<QColor>());
559 settings["OnlineStatusBG"] = s.value("onlineStatusBG", QVariant(QColor(Qt::white)));
560 ui.onlineStatusBG->setColor(settings["OnlineStatusBG"].value<QColor>());
561 settings["OnlineStatusUseBG"] = s.value("onlineStatusUseBG");
562 ui.onlineStatusUseBG->setChecked(settings["OnlineStatusUseBG"].toBool());
564 settings["AwayStatusFG"] = s.value("awayStatusFG", QVariant(QColor(Qt::gray)));
565 ui.awayStatusFG->setColor(settings["AwayStatusFG"].value<QColor>());
566 settings["AwayStatusBG"] = s.value("awayStatusBG", QVariant(QColor(Qt::white)));
567 ui.awayStatusBG->setColor(settings["AwayStatusBG"].value<QColor>());
568 settings["AwayStatusUseBG"] = s.value("awayStatusUseBG");
569 ui.awayStatusUseBG->setChecked(settings["AwayStatusUseBG"].toBool());
571 setChangedState(false);
576 void ColorSettingsPage::save() {
577 QtUiSettings s("QtUiStyle/Colors");
578 s.setValue("noActivityFG", ui.noActivityFG->color());
579 s.setValue("noActivityBG", ui.noActivityBG->color());
580 s.setValue("noActivityUseBG", ui.noActivityUseBG->isChecked());
581 s.setValue("inactiveActivityFG", ui.inactiveActivityFG->color());
582 s.setValue("inactiveActivityBG", ui.inactiveActivityBG->color());
583 s.setValue("inactiveActivityUseBG", ui.inactiveActivityUseBG->isChecked());
584 s.setValue("highlightActivityFG", ui.highlightActivityFG->color());
585 s.setValue("highlightActivityBG", ui.highlightActivityBG->color());
586 s.setValue("highlightActivityUseBG", ui.highlightActivityUseBG->isChecked());
587 s.setValue("newMessageActivityFG", ui.newMessageActivityFG->color());
588 s.setValue("newMessageActivityBG", ui.newMessageActivityBG->color());
589 s.setValue("newMessageActivityUseBG", ui.newMessageActivityUseBG->isChecked());
590 s.setValue("otherActivityFG", ui.otherActivityFG->color());
591 s.setValue("otherActivityBG", ui.otherActivityBG->color());
592 s.setValue("otherActivityUseBG", ui.otherActivityUseBG->isChecked());
594 saveColor(UiStyle::ErrorMsg, ui.errorMessageFG->color(), ui.errorMessageBG->color(), ui.errorMessageUseBG->isChecked());
595 s.setValue("errorMessageUseBG", ui.errorMessageUseBG->isChecked());
596 saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color(), ui.noticeMessageBG->color(), ui.noticeMessageUseBG->isChecked());
597 s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
598 saveColor(UiStyle::PlainMsg, ui.plainMessageFG->color(), ui.plainMessageBG->color(), ui.plainMessageUseBG->isChecked());
599 s.setValue("plainMessageUseBG", ui.plainMessageUseBG->isChecked());
600 saveColor(UiStyle::ServerMsg, ui.serverMessageFG->color(), ui.serverMessageBG->color(), ui.serverMessageUseBG->isChecked());
601 s.setValue("serverMessageUseBG", ui.serverMessageUseBG->isChecked());
602 saveColor(UiStyle::ActionMsg, ui.actionMessageFG->color(), ui.actionMessageBG->color(), ui.actionMessageUseBG->isChecked());
603 s.setValue("actionMessageUseBG", ui.actionMessageUseBG->isChecked());
604 saveColor(UiStyle::JoinMsg, ui.joinMessageFG->color(), ui.joinMessageBG->color(), ui.joinMessageUseBG->isChecked());
605 s.setValue("joinMessageUseBG", ui.joinMessageUseBG->isChecked());
606 saveColor(UiStyle::KickMsg, ui.kickMessageFG->color(), ui.kickMessageBG->color(), ui.kickMessageUseBG->isChecked());
607 s.setValue("kickMessageUseBG", ui.kickMessageUseBG->isChecked());
608 saveColor(UiStyle::ModeMsg, ui.modeMessageFG->color(), ui.modeMessageBG->color(), ui.modeMessageUseBG->isChecked());
609 s.setValue("modeMessageUseBG", ui.modeMessageUseBG->isChecked());
610 saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color(), ui.noticeMessageBG->color(), ui.noticeMessageUseBG->isChecked());
611 s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
612 saveColor(UiStyle::PartMsg, ui.partMessageFG->color(), ui.partMessageBG->color(), ui.partMessageUseBG->isChecked());
613 s.setValue("partMessageUseBG", ui.partMessageUseBG->isChecked());
614 saveColor(UiStyle::QuitMsg, ui.quitMessageFG->color(), ui.quitMessageBG->color(), ui.quitMessageUseBG->isChecked());
615 s.setValue("quitMessageUseBG", ui.quitMessageUseBG->isChecked());
616 saveColor(UiStyle::RenameMsg, ui.renameMessageFG->color(), ui.renameMessageBG->color(), ui.renameMessageUseBG->isChecked());
617 s.setValue("renameMessageUseBG", ui.renameMessageUseBG->isChecked());
619 QtUi::style()->setHighlightColor(ui.highlightColor->color());
621 saveColor(UiStyle::Timestamp, ui.timestampFG->color(), ui.timestampBG->color(), ui.timestampUseBG->isChecked());
622 s.setValue("timestampUseBG", ui.timestampUseBG->isChecked());
623 saveColor(UiStyle::Sender, ui.senderFG->color(), ui.senderBG->color(), ui.senderUseBG->isChecked());
624 s.setValue("senderUseBG", ui.senderUseBG->isChecked());
627 saveColor(UiStyle::Nick, ui.nickFG->color(), ui.nickBG->color(), ui.nickUseBG->isChecked());
628 s.setValue("nickUseBG", ui.nickUseBG->isChecked());
629 saveColor(UiStyle::Hostmask, ui.hostmaskFG->color(), ui.hostmaskBG->color(), ui.hostmaskUseBG->isChecked());
630 s.setValue("hostmaskUseBG", ui.hostmaskUseBG->isChecked());
631 saveColor(UiStyle::ChannelName, ui.channelnameFG->color(), ui.channelnameBG->color(), ui.channelnameUseBG->isChecked());
632 s.setValue("channelnameUseBG", ui.channelnameUseBG->isChecked());
633 saveColor(UiStyle::ModeFlags, ui.modeFlagsFG->color(), ui.modeFlagsBG->color(), ui.modeFlagsUseBG->isChecked());
634 s.setValue("modeFlagsUseBG", ui.modeFlagsUseBG->isChecked());
635 saveColor(UiStyle::Url, ui.urlFG->color(), ui.urlBG->color(), ui.urlUseBG->isChecked());
636 s.setValue("urlUseBG", ui.urlUseBG->isChecked());
639 saveMircColor(0, ui.color0->color());
640 saveMircColor(1, ui.color1->color());
641 saveMircColor(2, ui.color2->color());
642 saveMircColor(3, ui.color3->color());
643 saveMircColor(4, ui.color4->color());
644 saveMircColor(5, ui.color5->color());
645 saveMircColor(6, ui.color6->color());
646 saveMircColor(7, ui.color7->color());
647 saveMircColor(8, ui.color8->color());
648 saveMircColor(9, ui.color9->color());
649 saveMircColor(10, ui.color10->color());
650 saveMircColor(11, ui.color11->color());
651 saveMircColor(12, ui.color12->color());
652 saveMircColor(13, ui.color13->color());
653 saveMircColor(14, ui.color14->color());
654 saveMircColor(15, ui.color15->color());
656 s.setValue("onlineStatusFG", ui.onlineStatusFG->color());
657 s.setValue("onlineStatusBG", ui.onlineStatusBG->color());
658 s.setValue("onlineStatusUseBG", ui.onlineStatusUseBG->isChecked());
659 s.setValue("awayStatusFG", ui.awayStatusFG->color());
660 s.setValue("awayStatusBG", ui.awayStatusBG->color());
661 s.setValue("awayStatusUseBG", ui.awayStatusUseBG->isChecked());
663 load(); //TODO: remove when settings hash map is unnescessary
664 setChangedState(false);
667 void ColorSettingsPage::saveColor(UiStyle::FormatType formatType, const QColor &foreground, const QColor &background, bool enableBG) {
668 QTextCharFormat format = QtUi::style()->format(formatType);
669 format.setForeground(QBrush(foreground));
671 format.setBackground(QBrush(background));
673 format.clearBackground();
674 QtUi::style()->setFormat(formatType, format, Settings::Custom);
677 void ColorSettingsPage::saveMircColor(int num, const QColor &col) {
678 QTextCharFormat fgf, bgf;
679 fgf.setForeground(QBrush(col)); QtUi::style()->setFormat((UiStyle::FormatType)(UiStyle::FgCol00 | num<<24), fgf, Settings::Custom);
680 bgf.setBackground(QBrush(col)); QtUi::style()->setFormat((UiStyle::FormatType)(UiStyle::BgCol00 | num<<28), bgf, Settings::Custom);
683 void ColorSettingsPage::widgetHasChanged() {
684 bool changed = testHasChanged();
685 if(changed != hasChanged()) {
686 setChangedState(changed);
692 bool ColorSettingsPage::testHasChanged() {
693 if(settings["InactiveActivityFG"].value<QColor>() != ui.inactiveActivityFG->color()) return true;
694 if(settings["InactiveActivityBG"].value<QColor>() != ui.inactiveActivityBG->color()) return true;
695 if(settings["InactiveActivityUseBG"].toBool() != ui.inactiveActivityUseBG->isChecked()) return true;
696 if(settings["NoActivityFG"].value<QColor>() != ui.noActivityFG->color()) return true;
697 if(settings["NoActivityBG"].value<QColor>() != ui.noActivityBG->color()) return true;
698 if(settings["NoActivityUseBG"].toBool() != ui.noActivityUseBG->isChecked()) return true;
699 if(settings["HighlightActivityFG"].value<QColor>() != ui.highlightActivityFG->color()) return true;
700 if(settings["HighlightActivityBG"].value<QColor>() != ui.highlightActivityBG->color()) return true;
701 if(settings["HighlightActivityUseBG"].toBool() != ui.highlightActivityUseBG->isChecked()) return true;
702 if(settings["NewMessageActivityFG"].value<QColor>() != ui.newMessageActivityFG->color()) return true;
703 if(settings["NewMessageActivityBG"].value<QColor>() != ui.newMessageActivityBG->color()) return true;
704 if(settings["NewMessageActivityUseBG"].toBool() != ui.newMessageActivityUseBG->isChecked()) return true;
705 if(settings["OtherActivityFG"].value<QColor>() != ui.otherActivityFG->color()) return true;
706 if(settings["OtherActivityBG"].value<QColor>() != ui.otherActivityBG->color()) return true;
707 if(settings["OtherActivityUseBG"].toBool() != ui.otherActivityUseBG->isChecked()) return true;
709 if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
710 if(QtUi::style()->format(UiStyle::ErrorMsg).background().color() != ui.errorMessageBG->color()) return true;
711 if(settings["ErrorMessageUseBG"].toBool() != ui.errorMessageUseBG->isChecked()) return true;
712 if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
713 if(QtUi::style()->format(UiStyle::ErrorMsg).background().color() != ui.errorMessageBG->color()) return true;
714 if(settings["NoticeMessageUseBG"].toBool() != ui.noticeMessageUseBG->isChecked()) return true;
715 if(QtUi::style()->format(UiStyle::PlainMsg).foreground().color() != ui.plainMessageFG->color()) return true;
716 if(QtUi::style()->format(UiStyle::PlainMsg).background().color() != ui.plainMessageBG->color()) return true;
717 if(settings["PlainMessageUseBG"].toBool() != ui.plainMessageUseBG->isChecked()) return true;
718 if(QtUi::style()->format(UiStyle::ServerMsg).foreground().color() != ui.serverMessageFG->color()) return true;
719 if(QtUi::style()->format(UiStyle::ServerMsg).background().color() != ui.serverMessageBG->color()) return true;
720 if(settings["ServerMessageUseBG"].toBool() != ui.serverMessageUseBG->isChecked()) return true;
721 if(QtUi::style()->format(UiStyle::ActionMsg).foreground().color() != ui.actionMessageFG->color()) return true;
722 if(QtUi::style()->format(UiStyle::ActionMsg).background().color() != ui.actionMessageBG->color()) return true;
723 if(settings["ActionMessageUseBG"].toBool() != ui.actionMessageUseBG->isChecked()) return true;
724 if(QtUi::style()->format(UiStyle::JoinMsg).foreground().color() != ui.joinMessageFG->color()) return true;
725 if(QtUi::style()->format(UiStyle::JoinMsg).background().color() != ui.joinMessageBG->color()) return true;
726 if(settings["JoinMessageUseBG"].toBool() != ui.joinMessageUseBG->isChecked()) return true;
727 if(QtUi::style()->format(UiStyle::KickMsg).foreground().color() != ui.kickMessageFG->color()) return true;
728 if(QtUi::style()->format(UiStyle::KickMsg).background().color() != ui.joinMessageBG->color()) return true;
729 if(settings["KickMessageUseBG"].toBool() != ui.kickMessageUseBG->isChecked()) return true;
730 if(QtUi::style()->format(UiStyle::ModeMsg).foreground().color() != ui.modeMessageFG->color()) return true;
731 if(QtUi::style()->format(UiStyle::ModeMsg).background().color() != ui.modeMessageBG->color()) return true;
732 if(settings["ModeMessageUseBG"].toBool() != ui.modeMessageUseBG->isChecked()) return true;
733 if(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color() != ui.noticeMessageFG->color()) return true;
734 if(QtUi::style()->format(UiStyle::NoticeMsg).background().color() != ui.noticeMessageBG->color()) return true;
735 if(settings["NoticeMessageUseBG"].toBool() != ui.noticeMessageUseBG->isChecked()) return true;
736 if(QtUi::style()->format(UiStyle::PartMsg).foreground().color() != ui.partMessageFG->color()) return true;
737 if(QtUi::style()->format(UiStyle::PartMsg).background().color() != ui.partMessageBG->color()) return true;
738 if(settings["PartMessageUseBG"].toBool() != ui.partMessageUseBG->isChecked()) return true;
739 if(QtUi::style()->format(UiStyle::QuitMsg).foreground().color() != ui.quitMessageFG->color()) return true;
740 if(QtUi::style()->format(UiStyle::QuitMsg).background().color() != ui.quitMessageBG->color()) return true;
741 if(settings["QuitMessageUseBG"].toBool() != ui.quitMessageUseBG->isChecked()) return true;
742 if(QtUi::style()->format(UiStyle::RenameMsg).foreground().color() != ui.renameMessageFG->color()) return true;
743 if(QtUi::style()->format(UiStyle::RenameMsg).background().color() != ui.renameMessageBG->color()) return true;
744 if(settings["RenameMessageUseBG"].toBool() != ui.renameMessageUseBG->isChecked()) return true;
746 if(QtUi::style()->highlightColor() != ui.highlightColor->color()) return true;
748 if(QtUi::style()->format(UiStyle::Timestamp).foreground().color() != ui.timestampFG->color()) return true;
749 if(QtUi::style()->format(UiStyle::Timestamp).background().color() != ui.timestampBG->color()) return true;
750 if(settings["TimestampUseBG"].toBool() != ui.timestampUseBG->isChecked()) return true;
751 if(QtUi::style()->format(UiStyle::Sender).foreground().color() != ui.senderFG->color()) return true;
752 if(QtUi::style()->format(UiStyle::Sender).background().color() != ui.senderBG->color()) return true;
753 if(settings["SenderUseBG"].toBool() != ui.senderUseBG->isChecked()) return true;
756 if(QtUi::style()->format(UiStyle::Nick).foreground().color() != ui.nickFG->color()) return true;
757 if(QtUi::style()->format(UiStyle::Nick).background().color() != ui.nickBG->color()) return true;
758 if(settings["nickUseBG"].toBool() != ui.nickUseBG->isChecked()) return true;
759 if(QtUi::style()->format(UiStyle::Hostmask).foreground().color() != ui.hostmaskFG->color()) return true;
760 if(QtUi::style()->format(UiStyle::Hostmask).background().color() != ui.hostmaskBG->color()) return true;
761 if(settings["hostmaskUseBG"].toBool() != ui.hostmaskUseBG->isChecked()) return true;
762 if(QtUi::style()->format(UiStyle::ChannelName).foreground().color() != ui.channelnameFG->color()) return true;
763 if(QtUi::style()->format(UiStyle::ChannelName).background().color() != ui.channelnameBG->color()) return true;
764 if(settings["channelnameUseBG"].toBool() != ui.channelnameUseBG->isChecked()) return true;
765 if(QtUi::style()->format(UiStyle::ModeFlags).foreground().color() != ui.modeFlagsFG->color()) return true;
766 if(QtUi::style()->format(UiStyle::ModeFlags).background().color() != ui.modeFlagsBG->color()) return true;
767 if(settings["modeFlagsUseBG"].toBool() != ui.modeFlagsUseBG->isChecked()) return true;
768 if(QtUi::style()->format(UiStyle::Url).foreground().color() != ui.urlFG->color()) return true;
769 if(QtUi::style()->format(UiStyle::Url).background().color() != ui.urlBG->color()) return true;
770 if(settings["urlUseBG"].toBool() != ui.urlUseBG->isChecked()) return true;
773 if(QtUi::style()->format(UiStyle::FgCol00).foreground().color() != ui.color0->color()) return true;
774 if(QtUi::style()->format(UiStyle::FgCol01).foreground().color() != ui.color1->color()) return true;
775 if(QtUi::style()->format(UiStyle::FgCol02).foreground().color() != ui.color2->color()) return true;
776 if(QtUi::style()->format(UiStyle::FgCol03).foreground().color() != ui.color3->color()) return true;
777 if(QtUi::style()->format(UiStyle::FgCol04).foreground().color() != ui.color4->color()) return true;
778 if(QtUi::style()->format(UiStyle::FgCol05).foreground().color() != ui.color5->color()) return true;
779 if(QtUi::style()->format(UiStyle::FgCol06).foreground().color() != ui.color6->color()) return true;
780 if(QtUi::style()->format(UiStyle::FgCol07).foreground().color() != ui.color7->color()) return true;
781 if(QtUi::style()->format(UiStyle::FgCol08).foreground().color() != ui.color8->color()) return true;
782 if(QtUi::style()->format(UiStyle::FgCol09).foreground().color() != ui.color9->color()) return true;
783 if(QtUi::style()->format(UiStyle::FgCol10).foreground().color() != ui.color10->color()) return true;
784 if(QtUi::style()->format(UiStyle::FgCol11).foreground().color() != ui.color11->color()) return true;
785 if(QtUi::style()->format(UiStyle::FgCol12).foreground().color() != ui.color12->color()) return true;
786 if(QtUi::style()->format(UiStyle::FgCol13).foreground().color() != ui.color13->color()) return true;
787 if(QtUi::style()->format(UiStyle::FgCol14).foreground().color() != ui.color14->color()) return true;
788 if(QtUi::style()->format(UiStyle::FgCol15).foreground().color() != ui.color15->color()) return true;
790 if(settings["OnlineStatusFG"].value<QColor>() != ui.onlineStatusFG->color()) return true;
791 if(settings["OnlineStatusBG"].value<QColor>() != ui.onlineStatusBG->color()) return true;
792 if(settings["OnlineStatusUseBG"].toBool() != ui.onlineStatusUseBG->isChecked()) return true;
793 if(settings["AwayStatusFG"].value<QColor>() != ui.awayStatusFG->color()) return true;
794 if(settings["AwayStatusBG"].value<QColor>() != ui.awayStatusBG->color()) return true;
795 if(settings["AwayStatusUseBG"].toBool() != ui.awayStatusUseBG->isChecked()) return true;
800 void ColorSettingsPage::chooseColor(QWidget *widget) {
801 ColorButton *button = qobject_cast<ColorButton *>(widget);
803 QColor color = QColorDialog::getColor(button->color(), this);
804 if(color.isValid()) {
805 button->setColor(color);
810 void ColorSettingsPage::chatviewPreview() {
811 //TODO: update chatviewPreview
814 void ColorSettingsPage::bufferviewPreview() {
815 ui.bufferviewPreview->clear();
816 ui.bufferviewPreview->setColumnCount(1);
817 ui.bufferviewPreview->setHeaderLabels(QStringList("Buffers"));
819 QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("network")));
820 ui.bufferviewPreview->insertTopLevelItem(0, topLevelItem);
821 topLevelItem->setForeground(0, QBrush(ui.noActivityFG->color()));
822 if(ui.noActivityUseBG->isChecked())
823 topLevelItem->setBackground(0, QBrush(ui.noActivityBG->color()));
826 QList<QTreeWidgetItem *> items;
827 QTreeWidgetItem *statusBuffer = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Status Buffer")));
828 items.append(statusBuffer);
829 statusBuffer->setForeground(0, QBrush(ui.noActivityFG->color()));
830 if(ui.noActivityUseBG->isChecked())
831 statusBuffer->setBackground(0, QBrush(ui.noActivityBG->color()));
833 QTreeWidgetItem *inactiveActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#inactive channel")));
834 items.append(inactiveActivity);
835 inactiveActivity->setForeground(0, QBrush(ui.inactiveActivityFG->color()));
836 if(ui.inactiveActivityUseBG->isChecked())
837 inactiveActivity->setBackground(0, QBrush(ui.inactiveActivityBG->color()));
839 QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with no activity")));
840 items.append(noActivity);
841 noActivity->setForeground(0, QBrush(ui.noActivityFG->color()));
842 if(ui.noActivityUseBG->isChecked())
843 noActivity->setBackground(0, QBrush(ui.noActivityBG->color()));
845 QTreeWidgetItem *highlightActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with highlight")));
846 items.append(highlightActivity);
847 highlightActivity->setForeground(0, QBrush(ui.highlightActivityFG->color()));
848 if(ui.highlightActivityUseBG->isChecked())
849 highlightActivity->setBackground(0, QBrush(ui.highlightActivityBG->color()));
851 QTreeWidgetItem *newMessageActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with new message")));
852 items.append(newMessageActivity);
853 newMessageActivity->setForeground(0, QBrush(ui.newMessageActivityFG->color()));
854 if(ui.newMessageActivityUseBG->isChecked())
855 newMessageActivity->setBackground(0, QBrush(ui.newMessageActivityBG->color()));
857 QTreeWidgetItem *otherActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with other activity")));
858 items.append(otherActivity);
859 otherActivity->setForeground(0, QBrush(ui.otherActivityFG->color()));
860 if(ui.otherActivityUseBG->isChecked())
861 otherActivity->setBackground(0, QBrush(ui.otherActivityBG->color()));
863 topLevelItem->insertChildren(0, items);
864 ui.bufferviewPreview->expandItem(topLevelItem);