Test our newly acquired shortcut capabilities by finally allowing Ctrl+F to trigger...
[quassel.git] / src / qtui / settingspages / colorsettingspage.cpp
1 /***************************************************************************
2  *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
3  *   devel@quassel-irc.org                                                 *
4  *                                                                         *
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.                                           *
9  *                                                                         *
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.                          *
14  *                                                                         *
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  ***************************************************************************/
20
21 #include "colorsettingspage.h"
22
23 #include "qtui.h"
24 #include "qtuisettings.h"
25 #include "qtuistyle.h"
26 #include "colorbutton.h"
27
28 #include <QColorDialog>
29 #include <QPainter>
30
31 // #define PHONDEV
32
33 ColorSettingsPage::ColorSettingsPage(QWidget *parent)
34   : SettingsPage(tr("Appearance"), tr("Color settings"), parent),
35     mapper(new QSignalMapper(this))
36 {
37   ui.setupUi(this);
38
39   foreach(ColorButton *button, findChildren<ColorButton *>()) {
40     connect(button, SIGNAL(clicked()), mapper, SLOT(map()));
41     mapper->setMapping(button, button);
42   }
43   foreach(QCheckBox *checkBox, findChildren<QCheckBox *>()) {
44     connect(checkBox, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
45   }
46
47   connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseColor(QWidget *)));
48
49   //disable unused buttons:
50 #ifndef PHONDEV
51   ui.inactiveActivityUseBG->setEnabled(false);
52   ui.noActivityUseBG->setEnabled(false);
53   ui.highlightActivityUseBG->setEnabled(false);
54   ui.newMessageActivityUseBG->setEnabled(false);
55   ui.otherActivityUseBG->setEnabled(false);
56
57   ui.nickFG->setEnabled(false);
58   ui.nickUseBG->setEnabled(false);
59   ui.hostmaskFG->setEnabled(false);
60   ui.hostmaskUseBG->setEnabled(false);
61   ui.channelnameFG->setEnabled(false);
62   ui.channelnameUseBG->setEnabled(false);
63   ui.modeFlagsFG->setEnabled(false);
64   ui.modeFlagsUseBG->setEnabled(false);
65   ui.urlFG->setEnabled(false);
66   ui.urlUseBG->setEnabled(false);
67
68   ui.onlineStatusUseBG->setEnabled(false);
69   ui.awayStatusUseBG->setEnabled(false);
70 #endif
71 }
72
73 bool ColorSettingsPage::hasDefaults() const {
74   return true;
75 }
76
77 void ColorSettingsPage::defaults() {
78   defaultBufferview();
79   defaultServerActivity();
80   defaultUserActivity();
81   defaultMessage();
82   defaultMircColorCodes();
83   defaultNickview();
84
85   widgetHasChanged();
86   bufferviewPreview();
87   chatviewPreview();
88 }
89
90 void ColorSettingsPage::defaultBufferview() {
91   ui.inactiveActivityFG->setColor(QColor(Qt::gray));
92   ui.inactiveActivityBG->setColor(QColor(Qt::white));
93   ui.inactiveActivityBG->setEnabled(false);
94   ui.inactiveActivityUseBG->setChecked(false);
95   ui.noActivityFG->setColor(QColor(Qt::black));
96   ui.noActivityBG->setColor(QColor(Qt::white));
97   ui.noActivityBG->setEnabled(false);
98   ui.noActivityUseBG->setChecked(false);
99   ui.highlightActivityFG->setColor(QColor(Qt::magenta));
100   ui.highlightActivityBG->setColor(QColor(Qt::white));
101   ui.highlightActivityBG->setEnabled(false);
102   ui.highlightActivityUseBG->setChecked(false);
103   ui.newMessageActivityFG->setColor(QColor(Qt::green));
104   ui.newMessageActivityBG->setColor(QColor(Qt::white));
105   ui.newMessageActivityBG->setEnabled(false);
106   ui.newMessageActivityUseBG->setChecked(false);
107   ui.otherActivityFG->setColor(QColor(Qt::darkGreen));
108   ui.otherActivityBG->setColor(QColor(Qt::white));
109   ui.otherActivityBG->setEnabled(false);
110   ui.otherActivityUseBG->setChecked(false);
111 }
112
113 void ColorSettingsPage::defaultServerActivity() {
114   ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg, Settings::Default).foreground().color());
115   ui.errorMessageBG->setColor(QColor("white"));
116   ui.errorMessageBG->setEnabled(false);
117   ui.errorMessageUseBG->setChecked(false);
118   ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg, Settings::Default).foreground().color());
119   ui.noticeMessageBG->setColor(QColor("white"));
120   ui.noticeMessageBG->setEnabled(false);
121   ui.noticeMessageUseBG->setChecked(false);
122   ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg, Settings::Default).foreground().color());
123   ui.plainMessageBG->setColor(QColor("white"));
124   ui.plainMessageBG->setEnabled(false);
125   ui.plainMessageUseBG->setChecked(false);
126   ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg, Settings::Default).foreground().color());
127   ui.serverMessageBG->setColor(QColor("white"));
128   ui.serverMessageBG->setEnabled(false);
129   ui.serverMessageUseBG->setChecked(false);
130   ui.highlightColor->setColor(QColor("lightcoral"));
131 }
132
133 void ColorSettingsPage::defaultUserActivity() {
134   ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg, Settings::Default).foreground().color());
135   ui.actionMessageBG->setColor(QColor("white"));
136   ui.actionMessageBG->setEnabled(false);
137   ui.actionMessageUseBG->setChecked(false);
138   ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg, Settings::Default).foreground().color());
139   ui.joinMessageBG->setColor(QColor("white"));
140   ui.joinMessageBG->setEnabled(false);
141   ui.joinMessageUseBG->setChecked(false);
142   ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg, Settings::Default).foreground().color());
143   ui.kickMessageBG->setColor(QColor("white"));
144   ui.kickMessageBG->setEnabled(false);
145   ui.kickMessageUseBG->setChecked(false);
146   ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg, Settings::Default).foreground().color());
147   ui.modeMessageBG->setColor(QColor("white"));
148   ui.modeMessageBG->setEnabled(false);
149   ui.modeMessageUseBG->setChecked(false);
150   ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg, Settings::Default).foreground().color());
151   ui.partMessageBG->setColor(QColor("white"));
152   ui.partMessageBG->setEnabled(false);
153   ui.partMessageUseBG->setChecked(false);
154   ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg, Settings::Default).foreground().color());
155   ui.quitMessageBG->setColor(QColor("white"));
156   ui.quitMessageBG->setEnabled(false);
157   ui.quitMessageUseBG->setChecked(false);
158   ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg, Settings::Default).foreground().color());
159   ui.renameMessageBG->setColor(QColor("white"));
160   ui.renameMessageBG->setEnabled(false);
161   ui.renameMessageUseBG->setChecked(false);
162 }
163
164 void ColorSettingsPage::defaultMessage() {
165   ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp, Settings::Default).foreground().color());
166   ui.timestampBG->setColor(QColor("white"));
167   ui.timestampBG->setEnabled(false);
168   ui.timestampUseBG->setChecked(false);
169   ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender, Settings::Default).foreground().color());
170   ui.senderBG->setColor(QColor("white"));
171   ui.senderBG->setEnabled(false);
172   ui.senderUseBG->setChecked(false);
173   ui.newMsgMarkerFG->setColor(Qt::red);
174
175   /*
176   ui.nickFG->setColor(QColor("black"));
177   ui.nickBG->setColor(QColor("white"));
178   ui.nickBG->setEnabled(false);
179   ui.nickUseBG->setChecked(false);
180   ui.hostmaskFG->setColor(QColor("black"));
181   ui.hostmaskBG->setColor(QColor("white"));
182   ui.hostmaskBG->setEnabled(false);
183   ui.hostmaskUseBG->setChecked(false);
184   ui.channelnameFG->setColor(QColor("black"));
185   ui.channelnameBG->setColor(QColor("white"));
186   ui.channelnameBG->setEnabled(false);
187   ui.channelnameUseBG->setChecked(false);
188   ui.modeFlagsFG->setColor(QColor("black"));
189   ui.modeFlagsBG->setColor(QColor("white"));
190   ui.modeFlagsBG->setEnabled(false);
191   ui.modeFlagsUseBG->setChecked(false);
192   ui.urlFG->setColor(QColor("black"));
193   ui.urlBG->setColor(QColor("white"));
194   ui.urlBG->setEnabled(false);
195   ui.urlUseBG->setChecked(false);
196   */
197 }
198
199 void ColorSettingsPage::defaultMircColorCodes() {
200   ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00, Settings::Default).foreground().color());
201   ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01, Settings::Default).foreground().color());
202   ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02, Settings::Default).foreground().color());
203   ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03, Settings::Default).foreground().color());
204   ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04, Settings::Default).foreground().color());
205   ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05, Settings::Default).foreground().color());
206   ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06, Settings::Default).foreground().color());
207   ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07, Settings::Default).foreground().color());
208   ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08, Settings::Default).foreground().color());
209   ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09, Settings::Default).foreground().color());
210   ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10, Settings::Default).foreground().color());
211   ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11, Settings::Default).foreground().color());
212   ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12, Settings::Default).foreground().color());
213   ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13, Settings::Default).foreground().color());
214   ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14, Settings::Default).foreground().color());
215   ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15, Settings::Default).foreground().color());
216 }
217
218 void ColorSettingsPage::defaultNickview() {
219   ui.onlineStatusFG->setColor(QColor(Qt::black));
220   ui.onlineStatusBG->setColor(QColor("white"));
221   ui.onlineStatusBG->setEnabled(false);
222   ui.onlineStatusUseBG->setChecked(false);
223   ui.awayStatusFG->setColor(QColor(Qt::gray));
224   ui.awayStatusBG->setColor(QColor("white"));
225   ui.awayStatusBG->setEnabled(false);
226   ui.awayStatusUseBG->setChecked(false);
227 }
228
229 void ColorSettingsPage::load() {
230   QtUiStyleSettings s("Colors");
231   settings["InactiveActivityFG"] = s.value("inactiveActivityFG", QVariant(QColor(Qt::gray)));
232   ui.inactiveActivityFG->setColor(settings["InactiveActivityFG"].value<QColor>());
233   settings["InactiveActivityBG"] = s.value("inactiveActivityBG", QVariant(QColor(Qt::white)));
234   ui.inactiveActivityBG->setColor(settings["InactiveActivityBG"].value<QColor>());
235   settings["InactiveActivityUseBG"] = s.value("inactiveActivityUseBG");
236   ui.inactiveActivityUseBG->setChecked(settings["InactiveActivityUseBG"].toBool());
237
238   settings["NoActivityFG"] = s.value("noActivityFG", QVariant(QColor(Qt::black)));
239   ui.noActivityFG->setColor(settings["NoActivityFG"].value<QColor>());
240   settings["NoActivityBG"] = s.value("noActivityBG", QVariant(QColor(Qt::white)));
241   ui.noActivityBG->setColor(settings["NoActivityBG"].value<QColor>());
242   settings["NoActivityUseBG"] = s.value("noActivityUseBG");
243   ui.noActivityUseBG->setChecked(settings["NoActivityUseBG"].toBool());
244
245   settings["HighlightActivityFG"] = s.value("highlightActivityFG", QVariant(QColor(Qt::magenta)));
246   ui.highlightActivityFG->setColor(settings["HighlightActivityFG"].value<QColor>());
247   settings["HighlightActivityBG"] = s.value("highlightActivityBG", QVariant(QColor(Qt::white)));
248   ui.highlightActivityBG->setColor(settings["HighlightActivityBG"].value<QColor>());
249   settings["HighlightActivityUseBG"] = s.value("highlightActivityUseBG");
250   ui.highlightActivityUseBG->setChecked(settings["HighlightActivityUseBG"].toBool());
251
252   settings["NewMessageActivityFG"] = s.value("newMessageActivityFG", QVariant(QColor(Qt::green)));
253   ui.newMessageActivityFG->setColor(settings["NewMessageActivityFG"].value<QColor>());
254   settings["NewMessageActivityBG"] = s.value("newMessageActivityBG", QVariant(QColor(Qt::white)));
255   ui.newMessageActivityBG->setColor(settings["NewMessageActivityBG"].value<QColor>());
256   settings["NewMessageActivityUseBG"] = s.value("newMessageActivityUseBG");
257   ui.newMessageActivityUseBG->setChecked(settings["NewMessageActivityUseBG"].toBool());
258
259   settings["OtherActivityFG"] = s.value("otherActivityFG", QVariant(QColor(Qt::darkGreen)));
260   ui.otherActivityFG->setColor(settings["OtherActivityFG"].value<QColor>());
261   settings["OtherActivityBG"] = s.value("otherActivityBG", QVariant(QColor(Qt::white)));
262   ui.otherActivityBG->setColor(settings["OtherActivityBG"].value<QColor>());
263   settings["OtherActivityUseBG"] = s.value("otherActivityUseBG");
264   ui.otherActivityUseBG->setChecked(settings["OtherActivityUseBG"].toBool());
265
266   ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg).foreground().color());
267   ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color());
268   ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg).foreground().color());
269   ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg).foreground().color());
270   ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg).foreground().color());
271   ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color());
272   ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg).foreground().color());
273   ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg).foreground().color());
274   ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg).foreground().color());
275   ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg).foreground().color());
276   ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg).foreground().color());
277
278   ui.actionMessageBG->setColor(QtUi::style()->format(UiStyle::ActionMsg).background().color());
279   ui.errorMessageBG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).background().color());
280   ui.joinMessageBG->setColor(QtUi::style()->format(UiStyle::JoinMsg).background().color());
281   ui.kickMessageBG->setColor(QtUi::style()->format(UiStyle::KickMsg).background().color());
282   ui.modeMessageBG->setColor(QtUi::style()->format(UiStyle::ModeMsg).background().color());
283   ui.noticeMessageBG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).background().color());
284   ui.partMessageBG->setColor(QtUi::style()->format(UiStyle::PartMsg).background().color());
285   ui.plainMessageBG->setColor(QtUi::style()->format(UiStyle::PlainMsg).background().color());
286   ui.quitMessageBG->setColor(QtUi::style()->format(UiStyle::QuitMsg).background().color());
287   ui.renameMessageBG->setColor(QtUi::style()->format(UiStyle::RenameMsg).background().color());
288   ui.serverMessageBG->setColor(QtUi::style()->format(UiStyle::ServerMsg).background().color());
289
290   // FIXME set to false if appropriate
291   settings["ActionMessageUseBG"] = s.value("actionMessageUseBG", QVariant(false));
292   if(settings["ActionMessageUseBG"].toBool()) {
293     ui.actionMessageUseBG->setChecked(true);
294     ui.actionMessageBG->setEnabled(true);
295   }
296   settings["ErrorMessageUseBG"] = s.value("errorMessageUseBG", QVariant(false));
297   if(settings["ErrorMessageUseBG"].toBool()) {
298     ui.errorMessageUseBG->setChecked(true);
299     ui.errorMessageBG->setEnabled(true);
300   }
301   settings["JoinMessageUseBG"] = s.value("joinMessageUseBG", QVariant(false));
302   if(settings["JoinMessageUseBG"].toBool()) {
303     ui.joinMessageUseBG->setChecked(true);
304     ui.joinMessageBG->setEnabled(true);
305   }
306   settings["KickMessageUseBG"] = s.value("kickMessageUseBG", QVariant(false));
307   if(settings["KickMessageUseBG"].toBool()) {
308     ui.kickMessageUseBG->setChecked(true);
309     ui.kickMessageBG->setEnabled(true);
310   }
311   settings["ModeMessageUseBG"] = s.value("modeMessageUseBG", QVariant(false));
312   if(settings["ModeMessageUseBG"].toBool()) {
313     ui.modeMessageUseBG->setChecked(true);
314     ui.modeMessageBG->setEnabled(true);
315   }
316   settings["NoticeMessageUseBG"] = s.value("noticeMessageUseBG", QVariant(false));
317   if(settings["NoticeMessageUseBG"].toBool()) {
318     ui.noticeMessageUseBG->setChecked(true);
319     ui.noticeMessageBG->setEnabled(true);
320   }
321   settings["PartMessageUseBG"] = s.value("partMessageUseBG", QVariant(false));
322   if(settings["PartMessageUseBG"].toBool()) {
323     ui.partMessageUseBG->setChecked(true);
324     ui.partMessageBG->setEnabled(true);
325   }
326   settings["PlainMessageUseBG"] = s.value("plainMessageUseBG", QVariant(false));
327   if(settings["PlainMessageUseBG"].toBool()) {
328     ui.plainMessageUseBG->setChecked(true);
329     ui.plainMessageBG->setEnabled(true);
330   }
331   settings["QuitMessageUseBG"] = s.value("quitMessageUseBG", QVariant(false));
332   if(settings["QuitMessageUseBG"].toBool()) {
333     ui.quitMessageUseBG->setChecked(true);
334     ui.quitMessageBG->setEnabled(true);
335   }
336   settings["RenameMessageUseBG"] = s.value("renameMessageUseBG", QVariant(false));
337   if(settings["RenameMessageUseBG"].toBool()) {
338     ui.renameMessageUseBG->setChecked(true);
339     ui.renameMessageBG->setEnabled(true);
340   }
341   settings["ServerMessageUseBG"] = s.value("serverMessageUseBG", QVariant(false));
342   if(settings["ServerMessageUseBG"].toBool()) {
343     ui.serverMessageUseBG->setChecked(true);
344     ui.serverMessageBG->setEnabled(true);
345   }
346
347   ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp).foreground().color());
348   ui.timestampBG->setColor(QtUi::style()->format(UiStyle::Timestamp).background().color());
349   ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender).foreground().color());
350   ui.senderBG->setColor(QtUi::style()->format(UiStyle::Sender).background().color());
351   settings["NewMsgMarkerFG"] = s.value("newMsgMarkerFG", QColor(Qt::red));
352   ui.newMsgMarkerFG->setColor(settings["NewMsgMarkerFG"].value<QColor>());
353
354   settings["TimestampUseBG"] = s.value("timestampUseBG", QVariant(false));
355   if(settings["TimestampUseBG"].toBool()) {
356     ui.timestampUseBG->setChecked(true);
357     ui.timestampBG->setEnabled(true);
358   }
359   settings["SenderUseBG"] = s.value("senderUseBG", QVariant(false));
360   if(settings["SenderUseBG"].toBool()) {
361     ui.senderUseBG->setChecked(true);
362     ui.senderBG ->setEnabled(true);
363   }
364
365   ui.nickFG->setColor(QtUi::style()->format(UiStyle::Nick).foreground().color());
366   ui.nickBG->setColor(QtUi::style()->format(UiStyle::Nick).background().color());
367   ui.hostmaskFG->setColor(QtUi::style()->format(UiStyle::Hostmask).foreground().color());
368   ui.hostmaskBG->setColor(QtUi::style()->format(UiStyle::Hostmask).background().color());
369   ui.channelnameFG->setColor(QtUi::style()->format(UiStyle::ChannelName).foreground().color());
370   ui.channelnameBG->setColor(QtUi::style()->format(UiStyle::ChannelName).background().color());
371   ui.modeFlagsFG->setColor(QtUi::style()->format(UiStyle::ModeFlags).foreground().color());
372   ui.modeFlagsBG->setColor(QtUi::style()->format(UiStyle::ModeFlags).background().color());
373   ui.urlFG->setColor(QtUi::style()->format(UiStyle::Url).foreground().color());
374   ui.urlBG->setColor(QtUi::style()->format(UiStyle::Url).background().color());
375
376   ui.highlightColor->setColor(QtUi::style()->highlightColor());
377
378   ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00).foreground().color());
379   ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01).foreground().color());
380   ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02).foreground().color());
381   ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03).foreground().color());
382   ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04).foreground().color());
383   ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05).foreground().color());
384   ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06).foreground().color());
385   ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07).foreground().color());
386   ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08).foreground().color());
387   ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09).foreground().color());
388   ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10).foreground().color());
389   ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11).foreground().color());
390   ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12).foreground().color());
391   ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13).foreground().color());
392   ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14).foreground().color());
393   ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15).foreground().color());
394
395   settings["OnlineStatusFG"] = s.value("onlineStatusFG", QVariant(QColor(Qt::black)));
396   ui.onlineStatusFG->setColor(settings["OnlineStatusFG"].value<QColor>());
397   settings["OnlineStatusBG"] = s.value("onlineStatusBG", QVariant(QColor(Qt::white)));
398   ui.onlineStatusBG->setColor(settings["OnlineStatusBG"].value<QColor>());
399   settings["OnlineStatusUseBG"] = s.value("onlineStatusUseBG");
400   ui.onlineStatusUseBG->setChecked(settings["OnlineStatusUseBG"].toBool());
401
402   settings["AwayStatusFG"] = s.value("awayStatusFG", QVariant(QColor(Qt::gray)));
403   ui.awayStatusFG->setColor(settings["AwayStatusFG"].value<QColor>());
404   settings["AwayStatusBG"] = s.value("awayStatusBG", QVariant(QColor(Qt::white)));
405   ui.awayStatusBG->setColor(settings["AwayStatusBG"].value<QColor>());
406   settings["AwayStatusUseBG"] = s.value("awayStatusUseBG");
407   ui.awayStatusUseBG->setChecked(settings["AwayStatusUseBG"].toBool());
408
409   setChangedState(false);
410   bufferviewPreview();
411   chatviewPreview();
412 }
413
414 void ColorSettingsPage::save() {
415   QtUiStyleSettings s("Colors");
416   s.setValue("noActivityFG", ui.noActivityFG->color());
417   s.setValue("noActivityBG", ui.noActivityBG->color());
418   s.setValue("noActivityUseBG", ui.noActivityUseBG->isChecked());
419   s.setValue("inactiveActivityFG", ui.inactiveActivityFG->color());
420   s.setValue("inactiveActivityBG", ui.inactiveActivityBG->color());
421   s.setValue("inactiveActivityUseBG", ui.inactiveActivityUseBG->isChecked());
422   s.setValue("highlightActivityFG", ui.highlightActivityFG->color());
423   s.setValue("highlightActivityBG", ui.highlightActivityBG->color());
424   s.setValue("highlightActivityUseBG", ui.highlightActivityUseBG->isChecked());
425   s.setValue("newMessageActivityFG", ui.newMessageActivityFG->color());
426   s.setValue("newMessageActivityBG", ui.newMessageActivityBG->color());
427   s.setValue("newMessageActivityUseBG", ui.newMessageActivityUseBG->isChecked());
428   s.setValue("otherActivityFG", ui.otherActivityFG->color());
429   s.setValue("otherActivityBG", ui.otherActivityBG->color());
430   s.setValue("otherActivityUseBG", ui.otherActivityUseBG->isChecked());
431
432   saveColor(UiStyle::ErrorMsg, ui.errorMessageFG->color(), ui.errorMessageBG->color(), ui.errorMessageUseBG->isChecked());
433   s.setValue("errorMessageUseBG", ui.errorMessageUseBG->isChecked());
434   saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color(), ui.noticeMessageBG->color(), ui.noticeMessageUseBG->isChecked());
435   s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
436   saveColor(UiStyle::PlainMsg, ui.plainMessageFG->color(), ui.plainMessageBG->color(), ui.plainMessageUseBG->isChecked());
437   s.setValue("plainMessageUseBG", ui.plainMessageUseBG->isChecked());
438   saveColor(UiStyle::ServerMsg, ui.serverMessageFG->color(), ui.serverMessageBG->color(), ui.serverMessageUseBG->isChecked());
439   s.setValue("serverMessageUseBG", ui.serverMessageUseBG->isChecked());
440   saveColor(UiStyle::ActionMsg, ui.actionMessageFG->color(), ui.actionMessageBG->color(), ui.actionMessageUseBG->isChecked());
441   s.setValue("actionMessageUseBG", ui.actionMessageUseBG->isChecked());
442   saveColor(UiStyle::JoinMsg, ui.joinMessageFG->color(), ui.joinMessageBG->color(), ui.joinMessageUseBG->isChecked());
443   s.setValue("joinMessageUseBG", ui.joinMessageUseBG->isChecked());
444   saveColor(UiStyle::KickMsg, ui.kickMessageFG->color(), ui.kickMessageBG->color(), ui.kickMessageUseBG->isChecked());
445   s.setValue("kickMessageUseBG", ui.kickMessageUseBG->isChecked());
446   saveColor(UiStyle::ModeMsg, ui.modeMessageFG->color(), ui.modeMessageBG->color(), ui.modeMessageUseBG->isChecked());
447   s.setValue("modeMessageUseBG", ui.modeMessageUseBG->isChecked());
448   saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color(), ui.noticeMessageBG->color(), ui.noticeMessageUseBG->isChecked());
449   s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
450   saveColor(UiStyle::PartMsg, ui.partMessageFG->color(), ui.partMessageBG->color(), ui.partMessageUseBG->isChecked());
451   s.setValue("partMessageUseBG", ui.partMessageUseBG->isChecked());
452   saveColor(UiStyle::QuitMsg, ui.quitMessageFG->color(), ui.quitMessageBG->color(), ui.quitMessageUseBG->isChecked());
453   s.setValue("quitMessageUseBG", ui.quitMessageUseBG->isChecked());
454   saveColor(UiStyle::RenameMsg, ui.renameMessageFG->color(), ui.renameMessageBG->color(), ui.renameMessageUseBG->isChecked());
455   s.setValue("renameMessageUseBG", ui.renameMessageUseBG->isChecked());
456
457   QtUi::style()->setHighlightColor(ui.highlightColor->color());
458
459   saveColor(UiStyle::Timestamp, ui.timestampFG->color(), ui.timestampBG->color(), ui.timestampUseBG->isChecked());
460   s.setValue("timestampUseBG", ui.timestampUseBG->isChecked());
461   saveColor(UiStyle::Sender, ui.senderFG->color(), ui.senderBG->color(), ui.senderUseBG->isChecked());
462   s.setValue("senderUseBG", ui.senderUseBG->isChecked());
463   s.setValue("newMsgMarkerFG", ui.newMsgMarkerFG->color());
464
465   /*
466   saveColor(UiStyle::Nick, ui.nickFG->color(), ui.nickBG->color(), ui.nickUseBG->isChecked());
467   s.setValue("nickUseBG", ui.nickUseBG->isChecked());
468   saveColor(UiStyle::Hostmask, ui.hostmaskFG->color(), ui.hostmaskBG->color(), ui.hostmaskUseBG->isChecked());
469   s.setValue("hostmaskUseBG", ui.hostmaskUseBG->isChecked());
470   saveColor(UiStyle::ChannelName, ui.channelnameFG->color(), ui.channelnameBG->color(), ui.channelnameUseBG->isChecked());
471   s.setValue("channelnameUseBG", ui.channelnameUseBG->isChecked());
472   saveColor(UiStyle::ModeFlags, ui.modeFlagsFG->color(), ui.modeFlagsBG->color(), ui.modeFlagsUseBG->isChecked());
473   s.setValue("modeFlagsUseBG", ui.modeFlagsUseBG->isChecked());
474   saveColor(UiStyle::Url, ui.urlFG->color(), ui.urlBG->color(), ui.urlUseBG->isChecked());
475   s.setValue("urlUseBG", ui.urlUseBG->isChecked());
476   */
477
478   saveMircColor(0, ui.color0->color());
479   saveMircColor(1, ui.color1->color());
480   saveMircColor(2, ui.color2->color());
481   saveMircColor(3, ui.color3->color());
482   saveMircColor(4, ui.color4->color());
483   saveMircColor(5, ui.color5->color());
484   saveMircColor(6, ui.color6->color());
485   saveMircColor(7, ui.color7->color());
486   saveMircColor(8, ui.color8->color());
487   saveMircColor(9, ui.color9->color());
488   saveMircColor(10, ui.color10->color());
489   saveMircColor(11, ui.color11->color());
490   saveMircColor(12, ui.color12->color());
491   saveMircColor(13, ui.color13->color());
492   saveMircColor(14, ui.color14->color());
493   saveMircColor(15, ui.color15->color());
494
495   s.setValue("onlineStatusFG", ui.onlineStatusFG->color());
496   s.setValue("onlineStatusBG", ui.onlineStatusBG->color());
497   s.setValue("onlineStatusUseBG", ui.onlineStatusUseBG->isChecked());
498   s.setValue("awayStatusFG", ui.awayStatusFG->color());
499   s.setValue("awayStatusBG", ui.awayStatusBG->color());
500   s.setValue("awayStatusUseBG", ui.awayStatusUseBG->isChecked());
501
502   load(); //TODO: remove when settings hash map is unnescessary
503   setChangedState(false);
504 }
505
506 void ColorSettingsPage::saveColor(UiStyle::FormatType formatType, const QColor &foreground, const QColor &background, bool enableBG) {
507   QTextCharFormat format = QtUi::style()->format(formatType);
508   format.setForeground(QBrush(foreground));
509   if(enableBG)
510     format.setBackground(QBrush(background));
511   else
512     format.clearBackground();
513   QtUi::style()->setFormat(formatType, format, Settings::Custom);
514 }
515
516 void ColorSettingsPage::saveMircColor(int num, const QColor &col) {
517   QTextCharFormat fgf, bgf;
518   fgf.setForeground(QBrush(col)); QtUi::style()->setFormat((UiStyle::FormatType)(UiStyle::FgCol00 | num<<24), fgf, Settings::Custom);
519   bgf.setBackground(QBrush(col)); QtUi::style()->setFormat((UiStyle::FormatType)(UiStyle::BgCol00 | num<<28), bgf, Settings::Custom);
520 }
521
522 void ColorSettingsPage::widgetHasChanged() {
523   bool changed = testHasChanged();
524   if(changed != hasChanged()) {
525     setChangedState(changed);
526   }
527   bufferviewPreview();
528   chatviewPreview();
529 }
530
531 bool ColorSettingsPage::testHasChanged() {
532   if(settings["InactiveActivityFG"].value<QColor>() != ui.inactiveActivityFG->color()) return true;
533   if(settings["InactiveActivityBG"].value<QColor>() != ui.inactiveActivityBG->color()) return true;
534   if(settings["InactiveActivityUseBG"].toBool() != ui.inactiveActivityUseBG->isChecked()) return true;
535   if(settings["NoActivityFG"].value<QColor>() != ui.noActivityFG->color()) return true;
536   if(settings["NoActivityBG"].value<QColor>() != ui.noActivityBG->color()) return true;
537   if(settings["NoActivityUseBG"].toBool() != ui.noActivityUseBG->isChecked()) return true;
538   if(settings["HighlightActivityFG"].value<QColor>() != ui.highlightActivityFG->color()) return true;
539   if(settings["HighlightActivityBG"].value<QColor>() != ui.highlightActivityBG->color()) return true;
540   if(settings["HighlightActivityUseBG"].toBool() != ui.highlightActivityUseBG->isChecked()) return true;
541   if(settings["NewMessageActivityFG"].value<QColor>() != ui.newMessageActivityFG->color()) return true;
542   if(settings["NewMessageActivityBG"].value<QColor>() != ui.newMessageActivityBG->color()) return true;
543   if(settings["NewMessageActivityUseBG"].toBool() != ui.newMessageActivityUseBG->isChecked()) return true;
544   if(settings["OtherActivityFG"].value<QColor>() != ui.otherActivityFG->color()) return true;
545   if(settings["OtherActivityBG"].value<QColor>() != ui.otherActivityBG->color()) return true;
546   if(settings["OtherActivityUseBG"].toBool() != ui.otherActivityUseBG->isChecked()) return true;
547
548   if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
549   if(QtUi::style()->format(UiStyle::ErrorMsg).background().color() != ui.errorMessageBG->color()) return true;
550   if(settings["ErrorMessageUseBG"].toBool() != ui.errorMessageUseBG->isChecked()) return true;
551   if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
552   if(QtUi::style()->format(UiStyle::ErrorMsg).background().color() != ui.errorMessageBG->color()) return true;
553   if(settings["NoticeMessageUseBG"].toBool() != ui.noticeMessageUseBG->isChecked()) return true;
554   if(QtUi::style()->format(UiStyle::PlainMsg).foreground().color() != ui.plainMessageFG->color()) return true;
555   if(QtUi::style()->format(UiStyle::PlainMsg).background().color() != ui.plainMessageBG->color()) return true;
556   if(settings["PlainMessageUseBG"].toBool() != ui.plainMessageUseBG->isChecked()) return true;
557   if(QtUi::style()->format(UiStyle::ServerMsg).foreground().color() != ui.serverMessageFG->color()) return true;
558   if(QtUi::style()->format(UiStyle::ServerMsg).background().color() != ui.serverMessageBG->color()) return true;
559   if(settings["ServerMessageUseBG"].toBool() != ui.serverMessageUseBG->isChecked()) return true;
560   if(QtUi::style()->format(UiStyle::ActionMsg).foreground().color() != ui.actionMessageFG->color()) return true;
561   if(QtUi::style()->format(UiStyle::ActionMsg).background().color() != ui.actionMessageBG->color()) return true;
562   if(settings["ActionMessageUseBG"].toBool() != ui.actionMessageUseBG->isChecked()) return true;
563   if(QtUi::style()->format(UiStyle::JoinMsg).foreground().color() != ui.joinMessageFG->color()) return true;
564   if(QtUi::style()->format(UiStyle::JoinMsg).background().color() != ui.joinMessageBG->color()) return true;
565   if(settings["JoinMessageUseBG"].toBool() != ui.joinMessageUseBG->isChecked()) return true;
566   if(QtUi::style()->format(UiStyle::KickMsg).foreground().color() != ui.kickMessageFG->color()) return true;
567   if(QtUi::style()->format(UiStyle::KickMsg).background().color() != ui.joinMessageBG->color()) return true;
568   if(settings["KickMessageUseBG"].toBool() != ui.kickMessageUseBG->isChecked()) return true;
569   if(QtUi::style()->format(UiStyle::ModeMsg).foreground().color() != ui.modeMessageFG->color()) return true;
570   if(QtUi::style()->format(UiStyle::ModeMsg).background().color() != ui.modeMessageBG->color()) return true;
571   if(settings["ModeMessageUseBG"].toBool() != ui.modeMessageUseBG->isChecked()) return true;
572   if(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color() != ui.noticeMessageFG->color()) return true;
573   if(QtUi::style()->format(UiStyle::NoticeMsg).background().color() != ui.noticeMessageBG->color()) return true;
574   if(settings["NoticeMessageUseBG"].toBool() != ui.noticeMessageUseBG->isChecked()) return true;
575   if(QtUi::style()->format(UiStyle::PartMsg).foreground().color() != ui.partMessageFG->color()) return true;
576   if(QtUi::style()->format(UiStyle::PartMsg).background().color() != ui.partMessageBG->color()) return true;
577   if(settings["PartMessageUseBG"].toBool() != ui.partMessageUseBG->isChecked()) return true;
578   if(QtUi::style()->format(UiStyle::QuitMsg).foreground().color() != ui.quitMessageFG->color()) return true;
579   if(QtUi::style()->format(UiStyle::QuitMsg).background().color() != ui.quitMessageBG->color()) return true;
580   if(settings["QuitMessageUseBG"].toBool() != ui.quitMessageUseBG->isChecked()) return true;
581   if(QtUi::style()->format(UiStyle::RenameMsg).foreground().color() != ui.renameMessageFG->color()) return true;
582   if(QtUi::style()->format(UiStyle::RenameMsg).background().color() != ui.renameMessageBG->color()) return true;
583   if(settings["RenameMessageUseBG"].toBool() != ui.renameMessageUseBG->isChecked()) return true;
584
585   if(QtUi::style()->highlightColor() != ui.highlightColor->color()) return true;
586
587   if(QtUi::style()->format(UiStyle::Timestamp).foreground().color() != ui.timestampFG->color()) return true;
588   if(QtUi::style()->format(UiStyle::Timestamp).background().color() != ui.timestampBG->color()) return true;
589   if(settings["TimestampUseBG"].toBool() != ui.timestampUseBG->isChecked()) return true;
590   if(QtUi::style()->format(UiStyle::Sender).foreground().color() != ui.senderFG->color()) return true;
591   if(QtUi::style()->format(UiStyle::Sender).background().color() != ui.senderBG->color()) return true;
592   if(settings["SenderUseBG"].toBool() != ui.senderUseBG->isChecked()) return true;
593   if(settings["NewMsgMarkerFG"].value<QColor>() != ui.newMsgMarkerFG->color()) return true;
594
595   /*
596   if(QtUi::style()->format(UiStyle::Nick).foreground().color() != ui.nickFG->color()) return true;
597   if(QtUi::style()->format(UiStyle::Nick).background().color() != ui.nickBG->color()) return true;
598   if(settings["nickUseBG"].toBool() != ui.nickUseBG->isChecked()) return true;
599   if(QtUi::style()->format(UiStyle::Hostmask).foreground().color() != ui.hostmaskFG->color()) return true;
600   if(QtUi::style()->format(UiStyle::Hostmask).background().color() != ui.hostmaskBG->color()) return true;
601   if(settings["hostmaskUseBG"].toBool() != ui.hostmaskUseBG->isChecked()) return true;
602   if(QtUi::style()->format(UiStyle::ChannelName).foreground().color() != ui.channelnameFG->color()) return true;
603   if(QtUi::style()->format(UiStyle::ChannelName).background().color() != ui.channelnameBG->color()) return true;
604   if(settings["channelnameUseBG"].toBool() != ui.channelnameUseBG->isChecked()) return true;
605   if(QtUi::style()->format(UiStyle::ModeFlags).foreground().color() != ui.modeFlagsFG->color()) return true;
606   if(QtUi::style()->format(UiStyle::ModeFlags).background().color() != ui.modeFlagsBG->color()) return true;
607   if(settings["modeFlagsUseBG"].toBool() != ui.modeFlagsUseBG->isChecked()) return true;
608   if(QtUi::style()->format(UiStyle::Url).foreground().color() != ui.urlFG->color()) return true;
609   if(QtUi::style()->format(UiStyle::Url).background().color() != ui.urlBG->color()) return true;
610   if(settings["urlUseBG"].toBool() != ui.urlUseBG->isChecked()) return true;
611   */
612
613   if(QtUi::style()->format(UiStyle::FgCol00).foreground().color() != ui.color0->color()) return true;
614   if(QtUi::style()->format(UiStyle::FgCol01).foreground().color() != ui.color1->color()) return true;
615   if(QtUi::style()->format(UiStyle::FgCol02).foreground().color() != ui.color2->color()) return true;
616   if(QtUi::style()->format(UiStyle::FgCol03).foreground().color() != ui.color3->color()) return true;
617   if(QtUi::style()->format(UiStyle::FgCol04).foreground().color() != ui.color4->color()) return true;
618   if(QtUi::style()->format(UiStyle::FgCol05).foreground().color() != ui.color5->color()) return true;
619   if(QtUi::style()->format(UiStyle::FgCol06).foreground().color() != ui.color6->color()) return true;
620   if(QtUi::style()->format(UiStyle::FgCol07).foreground().color() != ui.color7->color()) return true;
621   if(QtUi::style()->format(UiStyle::FgCol08).foreground().color() != ui.color8->color()) return true;
622   if(QtUi::style()->format(UiStyle::FgCol09).foreground().color() != ui.color9->color()) return true;
623   if(QtUi::style()->format(UiStyle::FgCol10).foreground().color() != ui.color10->color()) return true;
624   if(QtUi::style()->format(UiStyle::FgCol11).foreground().color() != ui.color11->color()) return true;
625   if(QtUi::style()->format(UiStyle::FgCol12).foreground().color() != ui.color12->color()) return true;
626   if(QtUi::style()->format(UiStyle::FgCol13).foreground().color() != ui.color13->color()) return true;
627   if(QtUi::style()->format(UiStyle::FgCol14).foreground().color() != ui.color14->color()) return true;
628   if(QtUi::style()->format(UiStyle::FgCol15).foreground().color() != ui.color15->color()) return true;
629
630   if(settings["OnlineStatusFG"].value<QColor>() != ui.onlineStatusFG->color()) return true;
631   if(settings["OnlineStatusBG"].value<QColor>() != ui.onlineStatusBG->color()) return true;
632   if(settings["OnlineStatusUseBG"].toBool() != ui.onlineStatusUseBG->isChecked()) return true;
633   if(settings["AwayStatusFG"].value<QColor>() != ui.awayStatusFG->color()) return true;
634   if(settings["AwayStatusBG"].value<QColor>() != ui.awayStatusBG->color()) return true;
635   if(settings["AwayStatusUseBG"].toBool() != ui.awayStatusUseBG->isChecked()) return true;
636
637   return false;
638 }
639
640 void ColorSettingsPage::chooseColor(QWidget *widget) {
641   ColorButton *button = qobject_cast<ColorButton *>(widget);
642   Q_ASSERT(button);
643   QColor color = QColorDialog::getColor(button->color(), this);
644   if(color.isValid()) {
645     button->setColor(color);
646   }
647   widgetHasChanged();
648 }
649
650 void ColorSettingsPage::chatviewPreview() {
651   //TODO: update chatviewPreview
652 }
653
654 void ColorSettingsPage::bufferviewPreview() {
655   ui.bufferviewPreview->clear();
656   ui.bufferviewPreview->setColumnCount(1);
657   ui.bufferviewPreview->setHeaderLabels(QStringList("Buffers"));
658
659   QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("network")));
660   ui.bufferviewPreview->insertTopLevelItem(0, topLevelItem);
661   topLevelItem->setForeground(0, QBrush(ui.noActivityFG->color()));
662   if(ui.noActivityUseBG->isChecked())
663     topLevelItem->setBackground(0, QBrush(ui.noActivityBG->color()));
664
665
666   QList<QTreeWidgetItem *> items;
667   QTreeWidgetItem *statusBuffer = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Status Buffer")));
668   items.append(statusBuffer);
669   statusBuffer->setForeground(0, QBrush(ui.noActivityFG->color()));
670   if(ui.noActivityUseBG->isChecked())
671     statusBuffer->setBackground(0, QBrush(ui.noActivityBG->color()));
672
673   QTreeWidgetItem *inactiveActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#inactive channel")));
674   items.append(inactiveActivity);
675   inactiveActivity->setForeground(0, QBrush(ui.inactiveActivityFG->color()));
676   if(ui.inactiveActivityUseBG->isChecked())
677     inactiveActivity->setBackground(0, QBrush(ui.inactiveActivityBG->color()));
678
679   QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with no activity")));
680   items.append(noActivity);
681   noActivity->setForeground(0, QBrush(ui.noActivityFG->color()));
682   if(ui.noActivityUseBG->isChecked())
683     noActivity->setBackground(0, QBrush(ui.noActivityBG->color()));
684
685   QTreeWidgetItem *highlightActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with highlight")));
686   items.append(highlightActivity);
687   highlightActivity->setForeground(0, QBrush(ui.highlightActivityFG->color()));
688   if(ui.highlightActivityUseBG->isChecked())
689     highlightActivity->setBackground(0, QBrush(ui.highlightActivityBG->color()));
690
691   QTreeWidgetItem *newMessageActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with new message")));
692   items.append(newMessageActivity);
693   newMessageActivity->setForeground(0, QBrush(ui.newMessageActivityFG->color()));
694   if(ui.newMessageActivityUseBG->isChecked())
695     newMessageActivity->setBackground(0, QBrush(ui.newMessageActivityBG->color()));
696
697   QTreeWidgetItem *otherActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with other activity")));
698   items.append(otherActivity);
699   otherActivity->setForeground(0, QBrush(ui.otherActivityFG->color()));
700   if(ui.otherActivityUseBG->isChecked())
701     otherActivity->setBackground(0, QBrush(ui.otherActivityBG->color()));
702
703   topLevelItem->insertChildren(0, items);
704   ui.bufferviewPreview->expandItem(topLevelItem);
705 }
706