Kill old non-stylesheet code from UiStyle
[quassel.git] / src / qtui / settingspages / colorsettingspage.cpp
index 475d57c..2eb20c0 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 
 #include "qtui.h"
 #include "qtuisettings.h"
+#include "qtuistyle.h"
 #include "colorbutton.h"
 
 #include <QColorDialog>
 #include <QPainter>
 
 ColorSettingsPage::ColorSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Appearance"), tr("Color settings"), parent) {
+  : SettingsPage(tr("Appearance"), tr("Color settings"), parent),
+    mapper(new QSignalMapper(this))
+{
   ui.setupUi(this);
 
-  mapper = new QSignalMapper(this);
-  //Bufferview tab:
-  connect(ui.inactiveActivity, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noActivity, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.highlightActivity, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.newMessageActivity, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.otherActivity, SIGNAL(clicked()), mapper, SLOT(map()));
-
-  mapper->setMapping(ui.inactiveActivity, ui.inactiveActivity);
-  mapper->setMapping(ui.noActivity, ui.noActivity);
-  mapper->setMapping(ui.highlightActivity, ui.highlightActivity);
-  mapper->setMapping(ui.newMessageActivity, ui.newMessageActivity);
-  mapper->setMapping(ui.otherActivity, ui.otherActivity);
-
-  //Chatview tab:
-  connect(ui.errorMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.errorMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noticeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noticeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.plainMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.plainMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.serverMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.serverMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.actionMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.actionMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.joinMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.joinMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.kickMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.kickMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.partMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.partMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.quitMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.quitMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.renameMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.renameMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-
-  mapper->setMapping(ui.errorMessageFG, ui.errorMessageFG);
-  mapper->setMapping(ui.errorMessageBG, ui.errorMessageBG);
-  mapper->setMapping(ui.noticeMessageFG, ui.noticeMessageFG);
-  mapper->setMapping(ui.noticeMessageBG, ui.noticeMessageBG);
-  mapper->setMapping(ui.plainMessageFG, ui.plainMessageFG);
-  mapper->setMapping(ui.plainMessageBG, ui.plainMessageBG);
-  mapper->setMapping(ui.serverMessageFG, ui.serverMessageFG);
-  mapper->setMapping(ui.serverMessageBG, ui.serverMessageBG);
-  mapper->setMapping(ui.actionMessageFG, ui.actionMessageFG);
-  mapper->setMapping(ui.actionMessageBG, ui.actionMessageBG);
-  mapper->setMapping(ui.joinMessageFG, ui.joinMessageFG);
-  mapper->setMapping(ui.joinMessageBG, ui.joinMessageBG);
-  mapper->setMapping(ui.kickMessageFG, ui.kickMessageFG);
-  mapper->setMapping(ui.kickMessageBG, ui.kickMessageBG);
-  mapper->setMapping(ui.modeMessageFG, ui.modeMessageFG);
-  mapper->setMapping(ui.modeMessageBG, ui.modeMessageBG);
-  mapper->setMapping(ui.partMessageFG, ui.partMessageFG);
-  mapper->setMapping(ui.partMessageBG, ui.partMessageBG);
-  mapper->setMapping(ui.quitMessageFG, ui.quitMessageFG);
-  mapper->setMapping(ui.quitMessageBG, ui.quitMessageBG);
-  mapper->setMapping(ui.renameMessageFG, ui.renameMessageFG);
-  mapper->setMapping(ui.renameMessageBG, ui.renameMessageBG);
-
-  //Message Layout tab:
-  connect(ui.timestampFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.timestampBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.senderFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.senderBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.nickFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.nickBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.hostmaskFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.hostmaskBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.channelnameFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.channelnameBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeFlagsFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeFlagsBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.urlFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.urlBG, SIGNAL(clicked()), mapper, SLOT(map()));
-
-  mapper->setMapping(ui.timestampFG, ui.timestampFG);
-  mapper->setMapping(ui.timestampBG, ui.timestampBG);
-  mapper->setMapping(ui.senderFG, ui.senderFG);
-  mapper->setMapping(ui.senderBG, ui.senderBG);
-  mapper->setMapping(ui.nickFG, ui.nickFG);
-  mapper->setMapping(ui.nickBG, ui.nickBG);
-  mapper->setMapping(ui.hostmaskFG, ui.hostmaskFG);
-  mapper->setMapping(ui.hostmaskBG, ui.hostmaskBG);
-  mapper->setMapping(ui.channelnameFG, ui.channelnameFG);
-  mapper->setMapping(ui.channelnameBG, ui.channelnameBG);
-  mapper->setMapping(ui.modeFlagsFG, ui.modeFlagsFG);
-  mapper->setMapping(ui.modeFlagsBG, ui.modeFlagsBG);
-  mapper->setMapping(ui.urlFG, ui.urlFG);
-  mapper->setMapping(ui.urlBG, ui.urlBG);
-
-  //Mirc Color Codes tab:
-  connect(ui.color0, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color1, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color2, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color3, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color4, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color5, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color6, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color7, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color8, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color9, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color10, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color11, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color12, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color13, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color14, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.color15, SIGNAL(clicked()), mapper, SLOT(map()));
-
-  mapper->setMapping(ui.color0, ui.color0);
-  mapper->setMapping(ui.color1, ui.color1);
-  mapper->setMapping(ui.color2, ui.color2);
-  mapper->setMapping(ui.color3, ui.color3);
-  mapper->setMapping(ui.color4, ui.color4);
-  mapper->setMapping(ui.color5, ui.color5);
-  mapper->setMapping(ui.color6, ui.color6);
-  mapper->setMapping(ui.color7, ui.color7);
-  mapper->setMapping(ui.color8, ui.color8);
-  mapper->setMapping(ui.color9, ui.color9);
-  mapper->setMapping(ui.color10, ui.color10);
-  mapper->setMapping(ui.color11, ui.color11);
-  mapper->setMapping(ui.color12, ui.color12);
-  mapper->setMapping(ui.color13, ui.color13);
-  mapper->setMapping(ui.color14, ui.color14);
-  mapper->setMapping(ui.color15, ui.color15);
+  foreach(ColorButton *button, findChildren<ColorButton *>()) {
+    connect(button, SIGNAL(clicked()), mapper, SLOT(map()));
+    mapper->setMapping(button, button);
+  }
+  foreach(QCheckBox *checkBox, findChildren<QCheckBox *>()) {
+    connect(checkBox, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
+  }
 
   connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseColor(QWidget *)));
+
+  //disable unused buttons:
+  foreach(QWidget *widget, findChildren<QWidget *>()) {
+    if(widget->property("NotInUse").toBool()) {
+      widget->setEnabled(false);
+      widget->hide();
+    }
+  }
 }
 
 bool ColorSettingsPage::hasDefaults() const {
@@ -166,333 +58,575 @@ bool ColorSettingsPage::hasDefaults() const {
 }
 
 void ColorSettingsPage::defaults() {
-  ui.inactiveActivity->setColor(QColor(Qt::gray));
-  ui.noActivity->setColor(QColor(Qt::black));
-  ui.highlightActivity->setColor(QColor(Qt::magenta));
-  ui.newMessageActivity->setColor(QColor(Qt::green));
-  ui.otherActivity->setColor(QColor(Qt::darkGreen));
+  defaultBufferview();
+  defaultServerActivity();
+  defaultUserActivity();
+  defaultMessage();
+  defaultMircColorCodes();
+  defaultNickview();
+
+  widgetHasChanged();
+  bufferviewPreview();
+  chatviewPreview();
+}
 
-  ui.errorMessageFG->setColor(QColor("red"));
+void ColorSettingsPage::defaultBufferview() {
+  ui.inactiveActivityFG->setColor(QColor(Qt::gray));
+  ui.inactiveActivityBG->setColor(QColor(Qt::white));
+  ui.inactiveActivityBG->setEnabled(false);
+  ui.inactiveActivityUseBG->setChecked(false);
+  ui.noActivityFG->setColor(QColor(Qt::black));
+  ui.noActivityBG->setColor(QColor(Qt::white));
+  ui.noActivityBG->setEnabled(false);
+  ui.noActivityUseBG->setChecked(false);
+  ui.highlightActivityFG->setColor(QColor(Qt::magenta));
+  ui.highlightActivityBG->setColor(QColor(Qt::white));
+  ui.highlightActivityBG->setEnabled(false);
+  ui.highlightActivityUseBG->setChecked(false);
+  ui.newMessageActivityFG->setColor(QColor(Qt::green));
+  ui.newMessageActivityBG->setColor(QColor(Qt::white));
+  ui.newMessageActivityBG->setEnabled(false);
+  ui.newMessageActivityUseBG->setChecked(false);
+  ui.otherActivityFG->setColor(QColor(Qt::darkGreen));
+  ui.otherActivityBG->setColor(QColor(Qt::white));
+  ui.otherActivityBG->setEnabled(false);
+  ui.otherActivityUseBG->setChecked(false);
+}
+
+void ColorSettingsPage::defaultServerActivity() { /*
+  ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg, Settings::Default).foreground().color());
   ui.errorMessageBG->setColor(QColor("white"));
-  ui.noticeMessageFG->setColor(QColor("navy"));
+  ui.errorMessageBG->setEnabled(false);
+  ui.errorMessageUseBG->setChecked(false);
+  ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg, Settings::Default).foreground().color());
   ui.noticeMessageBG->setColor(QColor("white"));
-  ui.plainMessageFG->setColor(QColor("black"));
+  ui.noticeMessageBG->setEnabled(false);
+  ui.noticeMessageUseBG->setChecked(false);
+  ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg, Settings::Default).foreground().color());
   ui.plainMessageBG->setColor(QColor("white"));
-  ui.serverMessageFG->setColor(QColor("navy"));
+  ui.plainMessageBG->setEnabled(false);
+  ui.plainMessageUseBG->setChecked(false);
+  ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg, Settings::Default).foreground().color());
   ui.serverMessageBG->setColor(QColor("white"));
-  ui.actionMessageFG->setColor(QColor("darkmagenta"));
+  ui.serverMessageBG->setEnabled(false);
+  ui.serverMessageUseBG->setChecked(false);
+  ui.highlightColor->setColor(QColor("lightcoral")); */
+}
+
+void ColorSettingsPage::defaultUserActivity() { /*
+  ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg, Settings::Default).foreground().color());
   ui.actionMessageBG->setColor(QColor("white"));
-  ui.joinMessageFG->setColor(QColor("green"));
+  ui.actionMessageBG->setEnabled(false);
+  ui.actionMessageUseBG->setChecked(false);
+  ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg, Settings::Default).foreground().color());
   ui.joinMessageBG->setColor(QColor("white"));
-  ui.kickMessageFG->setColor(QColor("black"));
+  ui.joinMessageBG->setEnabled(false);
+  ui.joinMessageUseBG->setChecked(false);
+  ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg, Settings::Default).foreground().color());
   ui.kickMessageBG->setColor(QColor("white"));
-  ui.modeMessageFG->setColor(QColor("steelblue"));
+  ui.kickMessageBG->setEnabled(false);
+  ui.kickMessageUseBG->setChecked(false);
+  ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg, Settings::Default).foreground().color());
   ui.modeMessageBG->setColor(QColor("white"));
-  ui.partMessageFG->setColor(QColor("indianred"));
+  ui.modeMessageBG->setEnabled(false);
+  ui.modeMessageUseBG->setChecked(false);
+  ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg, Settings::Default).foreground().color());
   ui.partMessageBG->setColor(QColor("white"));
-  ui.quitMessageFG->setColor(QColor("indianred"));
+  ui.partMessageBG->setEnabled(false);
+  ui.partMessageUseBG->setChecked(false);
+  ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg, Settings::Default).foreground().color());
   ui.quitMessageBG->setColor(QColor("white"));
-  ui.renameMessageFG->setColor(QColor("magenta"));
+  ui.quitMessageBG->setEnabled(false);
+  ui.quitMessageUseBG->setChecked(false);
+  ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg, Settings::Default).foreground().color());
   ui.renameMessageBG->setColor(QColor("white"));
+  ui.renameMessageBG->setEnabled(false);
+  ui.renameMessageUseBG->setChecked(false); */
+}
 
-  ui.timestampFG->setColor(QColor("grey"));
+void ColorSettingsPage::defaultMessage() { /*
+  ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp, Settings::Default).foreground().color());
   ui.timestampBG->setColor(QColor("white"));
-  ui.senderFG->setColor(QColor("navy"));
+  ui.timestampBG->setEnabled(false);
+  ui.timestampUseBG->setChecked(false);
+  ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender, Settings::Default).foreground().color());
   ui.senderBG->setColor(QColor("white"));
+  ui.senderBG->setEnabled(false);
+  ui.senderUseBG->setChecked(false);
+  ui.senderAutoColor->setChecked(false);
+  ui.newMsgMarkerFG->setColor(Qt::red); */
+
+  /*
   ui.nickFG->setColor(QColor("black"));
   ui.nickBG->setColor(QColor("white"));
+  ui.nickBG->setEnabled(false);
+  ui.nickUseBG->setChecked(false);
   ui.hostmaskFG->setColor(QColor("black"));
   ui.hostmaskBG->setColor(QColor("white"));
+  ui.hostmaskBG->setEnabled(false);
+  ui.hostmaskUseBG->setChecked(false);
   ui.channelnameFG->setColor(QColor("black"));
   ui.channelnameBG->setColor(QColor("white"));
+  ui.channelnameBG->setEnabled(false);
+  ui.channelnameUseBG->setChecked(false);
   ui.modeFlagsFG->setColor(QColor("black"));
   ui.modeFlagsBG->setColor(QColor("white"));
+  ui.modeFlagsBG->setEnabled(false);
+  ui.modeFlagsUseBG->setChecked(false);
   ui.urlFG->setColor(QColor("black"));
   ui.urlBG->setColor(QColor("white"));
+  ui.urlBG->setEnabled(false);
+  ui.urlUseBG->setChecked(false);
+  */
+}
 
+void ColorSettingsPage::defaultMircColorCodes() { /*
+  ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00, Settings::Default).foreground().color());
+  ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01, Settings::Default).foreground().color());
+  ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02, Settings::Default).foreground().color());
+  ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03, Settings::Default).foreground().color());
+  ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04, Settings::Default).foreground().color());
+  ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05, Settings::Default).foreground().color());
+  ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06, Settings::Default).foreground().color());
+  ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07, Settings::Default).foreground().color());
+  ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08, Settings::Default).foreground().color());
+  ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09, Settings::Default).foreground().color());
+  ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10, Settings::Default).foreground().color());
+  ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11, Settings::Default).foreground().color());
+  ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12, Settings::Default).foreground().color());
+  ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13, Settings::Default).foreground().color());
+  ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14, Settings::Default).foreground().color());
+  ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15, Settings::Default).foreground().color()); */
+}
 
-  ui.color0->setColor(QColor("#ffffff"));
-  ui.color1->setColor(QColor("#000000"));
-  ui.color2->setColor(QColor("#000080"));
-  ui.color3->setColor(QColor("#008000"));
-  ui.color4->setColor(QColor("#ff0000"));
-  ui.color5->setColor(QColor("#800000"));
-  ui.color6->setColor(QColor("#800080"));
-  ui.color7->setColor(QColor("#ffa500"));
-  ui.color8->setColor(QColor("#ffff00"));
-  ui.color9->setColor(QColor("#00ff00"));
-  ui.color10->setColor(QColor("#008080"));
-  ui.color11->setColor(QColor("#00ffff"));
-  ui.color12->setColor(QColor("#4169E1"));
-  ui.color13->setColor(QColor("#ff00ff"));
-  ui.color14->setColor(QColor("#808080"));
-  ui.color15->setColor(QColor("#c0c0c0"));
-
-  widgetHasChanged();
-  bufferviewPreview();
-  chatviewPreview();
+void ColorSettingsPage::defaultNickview() {
+  ui.onlineStatusFG->setColor(QColor(Qt::black));
+  ui.onlineStatusBG->setColor(QColor("white"));
+  ui.onlineStatusBG->setEnabled(false);
+  ui.onlineStatusUseBG->setChecked(false);
+  ui.awayStatusFG->setColor(QColor(Qt::gray));
+  ui.awayStatusBG->setColor(QColor("white"));
+  ui.awayStatusBG->setEnabled(false);
+  ui.awayStatusUseBG->setChecked(false);
 }
 
 void ColorSettingsPage::load() {
-  QtUiSettings s("QtUi/Colors");
-  settings["InactiveActivity"] = s.value("inactiveActivity", QVariant(QColor(Qt::gray)));
-  ui.inactiveActivity->setColor(settings["InactiveActivity"].value<QColor>());
-  settings["NoActivity"] = s.value("noActivity", QVariant(QColor(Qt::black)));
-  ui.noActivity->setColor(settings["NoActivity"].value<QColor>());
-  settings["HighlightActivity"] = s.value("highlightActivity", QVariant(QColor(Qt::magenta)));
-  ui.highlightActivity->setColor(settings["HighlightActivity"].value<QColor>());
-  settings["NewMessageActivity"] = s.value("newMessageActivity", QVariant(QColor(Qt::green)));
-  ui.newMessageActivity->setColor(settings["NewMessageActivity"].value<QColor>());
-  settings["OtherActivity"] = s.value("otherActivity", QVariant(QColor(Qt::darkGreen)));
-  ui.otherActivity->setColor(settings["OtherActivity"].value<QColor>());
-
-  settings["ErrorMessageFG"] = s.value("errorMessageFG", QVariant(QColor("red")));
-  ui.errorMessageFG->setColor(settings["ErrorMessageFG"].value<QColor>());
-  settings["ErrorMessageBG"] = s.value("errorMessageBG", QVariant(QColor("white")));
-  ui.errorMessageBG->setColor(settings["ErrorMessageBG"].value<QColor>());
-  settings["NoticeMessageFG"] = s.value("noticeMessageFG", QVariant(QColor("navy")));
-  ui.noticeMessageFG->setColor(settings["NoticeMessageFG"].value<QColor>());
-  settings["NoticeMessageBG"] = s.value("noticeMessageBG", QVariant(QColor("white")));
-  ui.noticeMessageBG->setColor(settings["NoticeMessageBG"].value<QColor>());
-  settings["PlainMessageFG"] = s.value("plainMessageFG", QVariant(QColor("black")));
-  ui.plainMessageFG->setColor(settings["PlainMessageFG"].value<QColor>());
-  settings["PlainMessageBG"] = s.value("plainMessageBG", QVariant(QColor("white")));
-  ui.plainMessageBG->setColor(settings["PlainMessageBG"].value<QColor>());
-  settings["ServerMessageFG"] = s.value("serverMessageFG", QVariant(QColor("navy")));
-  ui.serverMessageFG->setColor(settings["ServerMessageFG"].value<QColor>());
-  settings["ServerMessageBG"] = s.value("serverMessageBG", QVariant(QColor("white")));
-  ui.serverMessageBG->setColor(settings["ServerMessageBG"].value<QColor>());
-  settings["ActionMessageFG"] = s.value("actionMessageFG", QVariant(QColor("darkmagenta")));
-  ui.actionMessageFG->setColor(settings["ActionMessageFG"].value<QColor>());
-  settings["ActionMessageBG"] = s.value("actionMessageBG", QVariant(QColor("white")));
-  ui.actionMessageBG->setColor(settings["ActionMessageBG"].value<QColor>());
-  settings["JoinMessageFG"] = s.value("joinMessageFG", QVariant(QColor("green")));
-  ui.joinMessageFG->setColor(settings["JoinMessageFG"].value<QColor>());
-  settings["JoinMessageBG"] = s.value("joinMessageBG", QVariant(QColor("white")));
-  ui.joinMessageBG->setColor(settings["JoinMessageBG"].value<QColor>());
-  settings["KickMessageFG"] = s.value("kickMessageFG", QVariant(QColor("black")));
-  ui.kickMessageFG->setColor(settings["KickMessageFG"].value<QColor>());
-  settings["KickMessageBG"] = s.value("kickMessageBG", QVariant(QColor("white")));
-  ui.kickMessageBG->setColor(settings["KickMessageBG"].value<QColor>());
-  settings["ModeMessageFG"] = s.value("modeMessageFG", QVariant(QColor("steelblue")));
-  ui.modeMessageFG->setColor(settings["ModeMessageFG"].value<QColor>());
-  settings["ModeMessageBG"] = s.value("modeMessageBG", QVariant(QColor("white")));
-  ui.modeMessageBG->setColor(settings["ModeMessageBG"].value<QColor>());
-  settings["PartMessageFG"] = s.value("partMessageFG", QVariant(QColor("indianred")));
-  ui.partMessageFG->setColor(settings["PartMessageFG"].value<QColor>());
-  settings["PartMessageBG"] = s.value("partMessageBG", QVariant(QColor("white")));
-  ui.partMessageBG->setColor(settings["PartMessageBG"].value<QColor>());
-  settings["QuitMessageFG"] = s.value("quitMessageFG", QVariant(QColor("indianred")));
-  ui.quitMessageFG->setColor(settings["QuitMessageFG"].value<QColor>());
-  settings["QuitMessageBG"] = s.value("quitMessageBG", QVariant(QColor("white")));
-  ui.quitMessageBG->setColor(settings["QuitMessageBG"].value<QColor>());
-  settings["RenameMessageFG"] = s.value("renameMessageFG", QVariant(QColor("magenta")));
-  ui.renameMessageFG->setColor(settings["RenameMessageFG"].value<QColor>());
-  settings["RenameMessageBG"] = s.value("renameMessageBG", QVariant(QColor("white")));
-  ui.renameMessageBG->setColor(settings["RenameMessageBG"].value<QColor>());
-
-  settings["TimestampFG"] = s.value("timestampFG", QVariant(QColor("grey")));
-  ui.timestampFG->setColor(settings["TimestampFG"].value<QColor>());
-  settings["TimestampBG"] = s.value("timestampBG", QVariant(QColor("white")));
-  ui.timestampBG->setColor(settings["TimestampBG"].value<QColor>());
-  settings["SenderFG"] = s.value("senderFG", QVariant(QColor("navy")));
-  ui.senderFG->setColor(settings["SenderFG"].value<QColor>());
-  settings["SenderBG"] = s.value("senderBG", QVariant(QColor("white")));
-  ui.senderBG->setColor(settings["SenderBG"].value<QColor>());
-  settings["NickFG"] = s.value("nickFG", QVariant(QColor("black")));
-  ui.nickFG->setColor(settings["NickFG"].value<QColor>());
-  settings["NickBG"] = s.value("nickBG", QVariant(QColor("white")));
-  ui.nickBG->setColor(settings["NickBG"].value<QColor>());
-  settings["HostmaskFG"] = s.value("hostmaskFG", QVariant(QColor("black")));
-  ui.hostmaskFG->setColor(settings["HostmaskFG"].value<QColor>());
-  settings["HostmaskBG"] = s.value("hostmaskBG", QVariant(QColor("white")));
-  ui.hostmaskBG->setColor(settings["HostmaskBG"].value<QColor>());
-  settings["ChannelnameFG"] = s.value("channelnameFG", QVariant(QColor("black")));
-  ui.channelnameFG->setColor(settings["ChannelnameFG"].value<QColor>());
-  settings["ChannelnameBG"] = s.value("channelnameBG", QVariant(QColor("white")));
-  ui.channelnameBG->setColor(settings["ChannelnameBG"].value<QColor>());
-  settings["ModeFlagsFG"] = s.value("modeFlagsFG", QVariant(QColor("black")));
-  ui.modeFlagsFG->setColor(settings["ModeFlagsFG"].value<QColor>());
-  settings["ModeFlagsBG"] = s.value("modeFlagsBG", QVariant(QColor("white")));
-  ui.modeFlagsBG->setColor(settings["ModeFlagsBG"].value<QColor>());
-  settings["UrlFG"] = s.value("urlFG", QVariant(QColor("black")));
-  ui.urlFG->setColor(settings["UrlFG"].value<QColor>());
-  settings["UrlBG"] = s.value("urlBG", QVariant(QColor("white")));
-  ui.urlBG->setColor(settings["UrlBG"].value<QColor>());
-
-  settings["Color0"] = s.value("color0", QVariant(QColor("#ffffff")));
-  ui.color0->setColor(settings["Color0"].value<QColor>());
-  settings["Color1"] = s.value("color1", QVariant(QColor("#000000")));
-  ui.color1->setColor(settings["Color1"].value<QColor>());
-  settings["Color2"] = s.value("color2", QVariant(QColor("#000080")));
-  ui.color2->setColor(settings["Color2"].value<QColor>());
-  settings["Color3"] = s.value("color3", QVariant(QColor("#008000")));
-  ui.color3->setColor(settings["Color3"].value<QColor>());
-  settings["Color4"] = s.value("color4", QVariant(QColor("#ff0000")));
-  ui.color4->setColor(settings["Color4"].value<QColor>());
-  settings["Color5"] = s.value("color5", QVariant(QColor("#800000")));
-  ui.color5->setColor(settings["Color5"].value<QColor>());
-  settings["Color6"] = s.value("color6", QVariant(QColor("#800080")));
-  ui.color6->setColor(settings["Color6"].value<QColor>());
-  settings["Color7"] = s.value("color7", QVariant(QColor("#ffa500")));
-  ui.color7->setColor(settings["Color7"].value<QColor>());
-  settings["Color8"] = s.value("color8", QVariant(QColor("#ffff00")));
-  ui.color8->setColor(settings["Color8"].value<QColor>());
-  settings["Color9"] = s.value("color9", QVariant(QColor("#00ff00")));
-  ui.color9->setColor(settings["Color9"].value<QColor>());
-  settings["Color10"] = s.value("color10", QVariant(QColor("#008080")));
-  ui.color10->setColor(settings["Color10"].value<QColor>());
-  settings["Color11"] = s.value("color11", QVariant(QColor("#00ffff")));
-  ui.color11->setColor(settings["Color11"].value<QColor>());
-  settings["Color12"] = s.value("color12", QVariant(QColor("#4169E1")));
-  ui.color12->setColor(settings["Color12"].value<QColor>());
-  settings["Color13"] = s.value("color13", QVariant(QColor("#ff00ff")));
-  ui.color13->setColor(settings["Color13"].value<QColor>());
-  settings["Color14"] = s.value("color14", QVariant(QColor("#808080")));
-  ui.color14->setColor(settings["Color14"].value<QColor>());
-  settings["Color15"] = s.value("color15", QVariant(QColor("#c0c0c0")));
-  ui.color15->setColor(settings["Color15"].value<QColor>());
+  QtUiStyleSettings s("Colors");
+  settings["InactiveActivityFG"] = s.value("inactiveActivityFG", QVariant(QColor(Qt::gray)));
+  ui.inactiveActivityFG->setColor(settings["InactiveActivityFG"].value<QColor>());
+  settings["InactiveActivityBG"] = s.value("inactiveActivityBG", QVariant(QColor(Qt::white)));
+  ui.inactiveActivityBG->setColor(settings["InactiveActivityBG"].value<QColor>());
+  settings["InactiveActivityUseBG"] = s.value("inactiveActivityUseBG");
+  ui.inactiveActivityUseBG->setChecked(settings["InactiveActivityUseBG"].toBool());
+
+  settings["NoActivityFG"] = s.value("noActivityFG", QVariant(QColor(Qt::black)));
+  ui.noActivityFG->setColor(settings["NoActivityFG"].value<QColor>());
+  settings["NoActivityBG"] = s.value("noActivityBG", QVariant(QColor(Qt::white)));
+  ui.noActivityBG->setColor(settings["NoActivityBG"].value<QColor>());
+  settings["NoActivityUseBG"] = s.value("noActivityUseBG");
+  ui.noActivityUseBG->setChecked(settings["NoActivityUseBG"].toBool());
+
+  settings["HighlightActivityFG"] = s.value("highlightActivityFG", QVariant(QColor(Qt::magenta)));
+  ui.highlightActivityFG->setColor(settings["HighlightActivityFG"].value<QColor>());
+  settings["HighlightActivityBG"] = s.value("highlightActivityBG", QVariant(QColor(Qt::white)));
+  ui.highlightActivityBG->setColor(settings["HighlightActivityBG"].value<QColor>());
+  settings["HighlightActivityUseBG"] = s.value("highlightActivityUseBG");
+  ui.highlightActivityUseBG->setChecked(settings["HighlightActivityUseBG"].toBool());
+
+  settings["NewMessageActivityFG"] = s.value("newMessageActivityFG", QVariant(QColor(Qt::green)));
+  ui.newMessageActivityFG->setColor(settings["NewMessageActivityFG"].value<QColor>());
+  settings["NewMessageActivityBG"] = s.value("newMessageActivityBG", QVariant(QColor(Qt::white)));
+  ui.newMessageActivityBG->setColor(settings["NewMessageActivityBG"].value<QColor>());
+  settings["NewMessageActivityUseBG"] = s.value("newMessageActivityUseBG");
+  ui.newMessageActivityUseBG->setChecked(settings["NewMessageActivityUseBG"].toBool());
+
+  settings["OtherActivityFG"] = s.value("otherActivityFG", QVariant(QColor(Qt::darkGreen)));
+  ui.otherActivityFG->setColor(settings["OtherActivityFG"].value<QColor>());
+  settings["OtherActivityBG"] = s.value("otherActivityBG", QVariant(QColor(Qt::white)));
+  ui.otherActivityBG->setColor(settings["OtherActivityBG"].value<QColor>());
+  settings["OtherActivityUseBG"] = s.value("otherActivityUseBG");
+  ui.otherActivityUseBG->setChecked(settings["OtherActivityUseBG"].toBool());
+/*
+  ui.actionMessageFG->setColor(QtUi::style()->format(UiStyle::ActionMsg).foreground().color());
+  ui.errorMessageFG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color());
+  ui.joinMessageFG->setColor(QtUi::style()->format(UiStyle::JoinMsg).foreground().color());
+  ui.kickMessageFG->setColor(QtUi::style()->format(UiStyle::KickMsg).foreground().color());
+  ui.modeMessageFG->setColor(QtUi::style()->format(UiStyle::ModeMsg).foreground().color());
+  ui.noticeMessageFG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color());
+  ui.partMessageFG->setColor(QtUi::style()->format(UiStyle::PartMsg).foreground().color());
+  ui.plainMessageFG->setColor(QtUi::style()->format(UiStyle::PlainMsg).foreground().color());
+  ui.quitMessageFG->setColor(QtUi::style()->format(UiStyle::QuitMsg).foreground().color());
+  ui.renameMessageFG->setColor(QtUi::style()->format(UiStyle::RenameMsg).foreground().color());
+  ui.serverMessageFG->setColor(QtUi::style()->format(UiStyle::ServerMsg).foreground().color());
+
+  ui.actionMessageBG->setColor(QtUi::style()->format(UiStyle::ActionMsg).background().color());
+  ui.errorMessageBG->setColor(QtUi::style()->format(UiStyle::ErrorMsg).background().color());
+  ui.joinMessageBG->setColor(QtUi::style()->format(UiStyle::JoinMsg).background().color());
+  ui.kickMessageBG->setColor(QtUi::style()->format(UiStyle::KickMsg).background().color());
+  ui.modeMessageBG->setColor(QtUi::style()->format(UiStyle::ModeMsg).background().color());
+  ui.noticeMessageBG->setColor(QtUi::style()->format(UiStyle::NoticeMsg).background().color());
+  ui.partMessageBG->setColor(QtUi::style()->format(UiStyle::PartMsg).background().color());
+  ui.plainMessageBG->setColor(QtUi::style()->format(UiStyle::PlainMsg).background().color());
+  ui.quitMessageBG->setColor(QtUi::style()->format(UiStyle::QuitMsg).background().color());
+  ui.renameMessageBG->setColor(QtUi::style()->format(UiStyle::RenameMsg).background().color());
+  ui.serverMessageBG->setColor(QtUi::style()->format(UiStyle::ServerMsg).background().color());
+*/
+  // FIXME set to false if appropriate
+  settings["ActionMessageUseBG"] = s.value("actionMessageUseBG", QVariant(false));
+  if(settings["ActionMessageUseBG"].toBool()) {
+    ui.actionMessageUseBG->setChecked(true);
+    ui.actionMessageBG->setEnabled(true);
+  }
+  settings["ErrorMessageUseBG"] = s.value("errorMessageUseBG", QVariant(false));
+  if(settings["ErrorMessageUseBG"].toBool()) {
+    ui.errorMessageUseBG->setChecked(true);
+    ui.errorMessageBG->setEnabled(true);
+  }
+  settings["JoinMessageUseBG"] = s.value("joinMessageUseBG", QVariant(false));
+  if(settings["JoinMessageUseBG"].toBool()) {
+    ui.joinMessageUseBG->setChecked(true);
+    ui.joinMessageBG->setEnabled(true);
+  }
+  settings["KickMessageUseBG"] = s.value("kickMessageUseBG", QVariant(false));
+  if(settings["KickMessageUseBG"].toBool()) {
+    ui.kickMessageUseBG->setChecked(true);
+    ui.kickMessageBG->setEnabled(true);
+  }
+  settings["ModeMessageUseBG"] = s.value("modeMessageUseBG", QVariant(false));
+  if(settings["ModeMessageUseBG"].toBool()) {
+    ui.modeMessageUseBG->setChecked(true);
+    ui.modeMessageBG->setEnabled(true);
+  }
+  settings["NoticeMessageUseBG"] = s.value("noticeMessageUseBG", QVariant(false));
+  if(settings["NoticeMessageUseBG"].toBool()) {
+    ui.noticeMessageUseBG->setChecked(true);
+    ui.noticeMessageBG->setEnabled(true);
+  }
+  settings["PartMessageUseBG"] = s.value("partMessageUseBG", QVariant(false));
+  if(settings["PartMessageUseBG"].toBool()) {
+    ui.partMessageUseBG->setChecked(true);
+    ui.partMessageBG->setEnabled(true);
+  }
+  settings["PlainMessageUseBG"] = s.value("plainMessageUseBG", QVariant(false));
+  if(settings["PlainMessageUseBG"].toBool()) {
+    ui.plainMessageUseBG->setChecked(true);
+    ui.plainMessageBG->setEnabled(true);
+  }
+  settings["QuitMessageUseBG"] = s.value("quitMessageUseBG", QVariant(false));
+  if(settings["QuitMessageUseBG"].toBool()) {
+    ui.quitMessageUseBG->setChecked(true);
+    ui.quitMessageBG->setEnabled(true);
+  }
+  settings["RenameMessageUseBG"] = s.value("renameMessageUseBG", QVariant(false));
+  if(settings["RenameMessageUseBG"].toBool()) {
+    ui.renameMessageUseBG->setChecked(true);
+    ui.renameMessageBG->setEnabled(true);
+  }
+  settings["ServerMessageUseBG"] = s.value("serverMessageUseBG", QVariant(false));
+  if(settings["ServerMessageUseBG"].toBool()) {
+    ui.serverMessageUseBG->setChecked(true);
+    ui.serverMessageBG->setEnabled(true);
+  }
+/*
+  ui.timestampFG->setColor(QtUi::style()->format(UiStyle::Timestamp).foreground().color());
+  ui.timestampBG->setColor(QtUi::style()->format(UiStyle::Timestamp).background().color());
+  ui.senderFG->setColor(QtUi::style()->format(UiStyle::Sender).foreground().color());
+  ui.senderBG->setColor(QtUi::style()->format(UiStyle::Sender).background().color());
+
+  settings["SenderAutoColor"] = s.value("SenderAutoColor", QVariant(false));
+  ui.senderFG->setEnabled(!settings["SenderAutoColor"].toBool());
+
+  ui.senderAutoColor->setChecked(settings["SenderAutoColor"].toBool());
+*/
+  settings["NewMsgMarkerFG"] = s.value("newMsgMarkerFG", QColor(Qt::red));
+  ui.newMsgMarkerFG->setColor(settings["NewMsgMarkerFG"].value<QColor>());
+
+  settings["TimestampUseBG"] = s.value("timestampUseBG", QVariant(false));
+  if(settings["TimestampUseBG"].toBool()) {
+    ui.timestampUseBG->setChecked(true);
+    ui.timestampBG->setEnabled(true);
+  }
+  settings["SenderUseBG"] = s.value("senderUseBG", QVariant(false));
+  if(settings["SenderUseBG"].toBool()) {
+    ui.senderUseBG->setChecked(true);
+    ui.senderBG ->setEnabled(true);
+  }
+/*
+  ui.nickFG->setColor(QtUi::style()->format(UiStyle::Nick).foreground().color());
+  ui.nickBG->setColor(QtUi::style()->format(UiStyle::Nick).background().color());
+  ui.hostmaskFG->setColor(QtUi::style()->format(UiStyle::Hostmask).foreground().color());
+  ui.hostmaskBG->setColor(QtUi::style()->format(UiStyle::Hostmask).background().color());
+  ui.channelnameFG->setColor(QtUi::style()->format(UiStyle::ChannelName).foreground().color());
+  ui.channelnameBG->setColor(QtUi::style()->format(UiStyle::ChannelName).background().color());
+  ui.modeFlagsFG->setColor(QtUi::style()->format(UiStyle::ModeFlags).foreground().color());
+  ui.modeFlagsBG->setColor(QtUi::style()->format(UiStyle::ModeFlags).background().color());
+  ui.urlFG->setColor(QtUi::style()->format(UiStyle::Url).foreground().color());
+  ui.urlBG->setColor(QtUi::style()->format(UiStyle::Url).background().color());
+*/
+  ui.highlightColor->setColor(QtUi::style()->highlightColor());
+/*
+  ui.color0->setColor(QtUi::style()->format(UiStyle::FgCol00).foreground().color());
+  ui.color1->setColor(QtUi::style()->format(UiStyle::FgCol01).foreground().color());
+  ui.color2->setColor(QtUi::style()->format(UiStyle::FgCol02).foreground().color());
+  ui.color3->setColor(QtUi::style()->format(UiStyle::FgCol03).foreground().color());
+  ui.color4->setColor(QtUi::style()->format(UiStyle::FgCol04).foreground().color());
+  ui.color5->setColor(QtUi::style()->format(UiStyle::FgCol05).foreground().color());
+  ui.color6->setColor(QtUi::style()->format(UiStyle::FgCol06).foreground().color());
+  ui.color7->setColor(QtUi::style()->format(UiStyle::FgCol07).foreground().color());
+  ui.color8->setColor(QtUi::style()->format(UiStyle::FgCol08).foreground().color());
+  ui.color9->setColor(QtUi::style()->format(UiStyle::FgCol09).foreground().color());
+  ui.color10->setColor(QtUi::style()->format(UiStyle::FgCol10).foreground().color());
+  ui.color11->setColor(QtUi::style()->format(UiStyle::FgCol11).foreground().color());
+  ui.color12->setColor(QtUi::style()->format(UiStyle::FgCol12).foreground().color());
+  ui.color13->setColor(QtUi::style()->format(UiStyle::FgCol13).foreground().color());
+  ui.color14->setColor(QtUi::style()->format(UiStyle::FgCol14).foreground().color());
+  ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15).foreground().color());
+*/
+  settings["OnlineStatusFG"] = s.value("onlineStatusFG", QVariant(QColor(Qt::black)));
+  ui.onlineStatusFG->setColor(settings["OnlineStatusFG"].value<QColor>());
+  settings["OnlineStatusBG"] = s.value("onlineStatusBG", QVariant(QColor(Qt::white)));
+  ui.onlineStatusBG->setColor(settings["OnlineStatusBG"].value<QColor>());
+  settings["OnlineStatusUseBG"] = s.value("onlineStatusUseBG");
+  ui.onlineStatusUseBG->setChecked(settings["OnlineStatusUseBG"].toBool());
+
+  settings["AwayStatusFG"] = s.value("awayStatusFG", QVariant(QColor(Qt::gray)));
+  ui.awayStatusFG->setColor(settings["AwayStatusFG"].value<QColor>());
+  settings["AwayStatusBG"] = s.value("awayStatusBG", QVariant(QColor(Qt::white)));
+  ui.awayStatusBG->setColor(settings["AwayStatusBG"].value<QColor>());
+  settings["AwayStatusUseBG"] = s.value("awayStatusUseBG");
+  ui.awayStatusUseBG->setChecked(settings["AwayStatusUseBG"].toBool());
 
   setChangedState(false);
-
   bufferviewPreview();
   chatviewPreview();
 }
 
 void ColorSettingsPage::save() {
-  QtUiSettings s("QtUi/Colors");
-  s.setValue("inactiveActivity", ui.inactiveActivity->color());
-  s.setValue("noActivity", ui.noActivity->color());
-  s.setValue("highlightActivity", ui.highlightActivity->color());
-  s.setValue("newMessageActivity", ui.newMessageActivity->color());
-  s.setValue("otherActivity", ui.otherActivity->color());
-
-  s.setValue("errorMessageFG", ui.errorMessageFG->color());
-  s.setValue("errorMessageBG", ui.errorMessageBG->color());
-  s.setValue("noticeMessageFG", ui.noticeMessageFG->color());
-  s.setValue("noticeMessageBG", ui.noticeMessageBG->color());
-  s.setValue("plainMessageFG", ui.plainMessageFG->color());
-  s.setValue("plainMessageBG", ui.plainMessageBG->color());
-  s.setValue("serverMessageFG", ui.serverMessageFG->color());
-  s.setValue("serverMessageBG", ui.serverMessageBG->color());
-  s.setValue("actionMessageFG", ui.actionMessageFG->color());
-  s.setValue("actionMessageBG", ui.actionMessageBG->color());
-  s.setValue("joinMessageFG", ui.joinMessageFG->color());
-  s.setValue("joinMessageBG", ui.joinMessageBG->color());
-  s.setValue("kickMessageFG", ui.kickMessageFG->color());
-  s.setValue("kickMessageBG", ui.kickMessageBG->color());
-  s.setValue("modeMessageFG", ui.modeMessageFG->color());
-  s.setValue("modeMessageBG", ui.modeMessageBG->color());
-  s.setValue("partMessageFG", ui.partMessageFG->color());
-  s.setValue("partMessageBG", ui.partMessageBG->color());
-  s.setValue("quitMessageFG", ui.quitMessageFG->color());
-  s.setValue("quitMessageBG", ui.quitMessageBG->color());
-  s.setValue("renameMessageFG", ui.renameMessageFG->color());
-  s.setValue("renameMessageBG", ui.renameMessageBG->color());
-
-  s.setValue("timestampFG", ui.timestampFG->color());
-  s.setValue("timestampBG", ui.timestampBG->color());
-  s.setValue("senderFG", ui.senderFG->color());
-  s.setValue("senderBG", ui.senderBG->color());
-  s.setValue("nickFG", ui.nickFG->color());
-  s.setValue("nickBG", ui.nickBG->color());
-  s.setValue("hostmaskFG", ui.hostmaskFG->color());
-  s.setValue("hostmaskBG", ui.hostmaskBG->color());
-  s.setValue("channelnameFG", ui.channelnameFG->color());
-  s.setValue("channelnameBG", ui.channelnameBG->color());
-  s.setValue("modeFlagsFG", ui.modeFlagsFG->color());
-  s.setValue("modeFlagsBG", ui.modeFlagsBG->color());
-  s.setValue("urlFG", ui.urlFG->color());
-  s.setValue("urlBG", ui.urlBG->color());
-
-
-  s.setValue("color0", ui.color0->color());
-  s.setValue("color1", ui.color1->color());
-  s.setValue("color2", ui.color2->color());
-  s.setValue("color3", ui.color3->color());
-  s.setValue("color4", ui.color4->color());
-  s.setValue("color5", ui.color5->color());
-  s.setValue("color6", ui.color6->color());
-  s.setValue("color7", ui.color7->color());
-  s.setValue("color8", ui.color8->color());
-  s.setValue("color9", ui.color9->color());
-  s.setValue("color10", ui.color10->color());
-  s.setValue("color11", ui.color11->color());
-  s.setValue("color12", ui.color12->color());
-  s.setValue("color13", ui.color13->color());
-  s.setValue("color14", ui.color14->color());
-  s.setValue("color15", ui.color15->color());
-
-  load();
+  QtUiStyleSettings s("Colors");
+  s.setValue("noActivityFG", ui.noActivityFG->color());
+  s.setValue("noActivityBG", ui.noActivityBG->color());
+  s.setValue("noActivityUseBG", ui.noActivityUseBG->isChecked());
+  s.setValue("inactiveActivityFG", ui.inactiveActivityFG->color());
+  s.setValue("inactiveActivityBG", ui.inactiveActivityBG->color());
+  s.setValue("inactiveActivityUseBG", ui.inactiveActivityUseBG->isChecked());
+  s.setValue("highlightActivityFG", ui.highlightActivityFG->color());
+  s.setValue("highlightActivityBG", ui.highlightActivityBG->color());
+  s.setValue("highlightActivityUseBG", ui.highlightActivityUseBG->isChecked());
+  s.setValue("newMessageActivityFG", ui.newMessageActivityFG->color());
+  s.setValue("newMessageActivityBG", ui.newMessageActivityBG->color());
+  s.setValue("newMessageActivityUseBG", ui.newMessageActivityUseBG->isChecked());
+  s.setValue("otherActivityFG", ui.otherActivityFG->color());
+  s.setValue("otherActivityBG", ui.otherActivityBG->color());
+  s.setValue("otherActivityUseBG", ui.otherActivityUseBG->isChecked());
+
+  saveColor(UiStyle::ErrorMsg, ui.errorMessageFG->color(), ui.errorMessageBG->color(), ui.errorMessageUseBG->isChecked());
+  s.setValue("errorMessageUseBG", ui.errorMessageUseBG->isChecked());
+  saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color(), ui.noticeMessageBG->color(), ui.noticeMessageUseBG->isChecked());
+  s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
+  saveColor(UiStyle::PlainMsg, ui.plainMessageFG->color(), ui.plainMessageBG->color(), ui.plainMessageUseBG->isChecked());
+  s.setValue("plainMessageUseBG", ui.plainMessageUseBG->isChecked());
+  saveColor(UiStyle::ServerMsg, ui.serverMessageFG->color(), ui.serverMessageBG->color(), ui.serverMessageUseBG->isChecked());
+  s.setValue("serverMessageUseBG", ui.serverMessageUseBG->isChecked());
+  saveColor(UiStyle::ActionMsg, ui.actionMessageFG->color(), ui.actionMessageBG->color(), ui.actionMessageUseBG->isChecked());
+  s.setValue("actionMessageUseBG", ui.actionMessageUseBG->isChecked());
+  saveColor(UiStyle::JoinMsg, ui.joinMessageFG->color(), ui.joinMessageBG->color(), ui.joinMessageUseBG->isChecked());
+  s.setValue("joinMessageUseBG", ui.joinMessageUseBG->isChecked());
+  saveColor(UiStyle::KickMsg, ui.kickMessageFG->color(), ui.kickMessageBG->color(), ui.kickMessageUseBG->isChecked());
+  s.setValue("kickMessageUseBG", ui.kickMessageUseBG->isChecked());
+  saveColor(UiStyle::ModeMsg, ui.modeMessageFG->color(), ui.modeMessageBG->color(), ui.modeMessageUseBG->isChecked());
+  s.setValue("modeMessageUseBG", ui.modeMessageUseBG->isChecked());
+  saveColor(UiStyle::NoticeMsg, ui.noticeMessageFG->color(), ui.noticeMessageBG->color(), ui.noticeMessageUseBG->isChecked());
+  s.setValue("noticeMessageUseBG", ui.noticeMessageUseBG->isChecked());
+  saveColor(UiStyle::PartMsg, ui.partMessageFG->color(), ui.partMessageBG->color(), ui.partMessageUseBG->isChecked());
+  s.setValue("partMessageUseBG", ui.partMessageUseBG->isChecked());
+  saveColor(UiStyle::QuitMsg, ui.quitMessageFG->color(), ui.quitMessageBG->color(), ui.quitMessageUseBG->isChecked());
+  s.setValue("quitMessageUseBG", ui.quitMessageUseBG->isChecked());
+  saveColor(UiStyle::RenameMsg, ui.renameMessageFG->color(), ui.renameMessageBG->color(), ui.renameMessageUseBG->isChecked());
+  s.setValue("renameMessageUseBG", ui.renameMessageUseBG->isChecked());
+
+  QtUi::style()->setHighlightColor(ui.highlightColor->color());
+
+  saveColor(UiStyle::Timestamp, ui.timestampFG->color(), ui.timestampBG->color(), ui.timestampUseBG->isChecked());
+  s.setValue("timestampUseBG", ui.timestampUseBG->isChecked());
+  saveColor(UiStyle::Sender, ui.senderFG->color(), ui.senderBG->color(), ui.senderUseBG->isChecked());
+  s.setValue("senderUseBG", ui.senderUseBG->isChecked());
+  s.setValue("SenderAutoColor", ui.senderAutoColor->isChecked());
+  //QtUi::style()->setSenderAutoColor(ui.senderAutoColor->isChecked());
+  s.setValue("newMsgMarkerFG", ui.newMsgMarkerFG->color());
+
+  /*
+  saveColor(UiStyle::Nick, ui.nickFG->color(), ui.nickBG->color(), ui.nickUseBG->isChecked());
+  s.setValue("nickUseBG", ui.nickUseBG->isChecked());
+  saveColor(UiStyle::Hostmask, ui.hostmaskFG->color(), ui.hostmaskBG->color(), ui.hostmaskUseBG->isChecked());
+  s.setValue("hostmaskUseBG", ui.hostmaskUseBG->isChecked());
+  saveColor(UiStyle::ChannelName, ui.channelnameFG->color(), ui.channelnameBG->color(), ui.channelnameUseBG->isChecked());
+  s.setValue("channelnameUseBG", ui.channelnameUseBG->isChecked());
+  saveColor(UiStyle::ModeFlags, ui.modeFlagsFG->color(), ui.modeFlagsBG->color(), ui.modeFlagsUseBG->isChecked());
+  s.setValue("modeFlagsUseBG", ui.modeFlagsUseBG->isChecked());
+  saveColor(UiStyle::Url, ui.urlFG->color(), ui.urlBG->color(), ui.urlUseBG->isChecked());
+  s.setValue("urlUseBG", ui.urlUseBG->isChecked());
+  */
+
+  saveMircColor(0, ui.color0->color());
+  saveMircColor(1, ui.color1->color());
+  saveMircColor(2, ui.color2->color());
+  saveMircColor(3, ui.color3->color());
+  saveMircColor(4, ui.color4->color());
+  saveMircColor(5, ui.color5->color());
+  saveMircColor(6, ui.color6->color());
+  saveMircColor(7, ui.color7->color());
+  saveMircColor(8, ui.color8->color());
+  saveMircColor(9, ui.color9->color());
+  saveMircColor(10, ui.color10->color());
+  saveMircColor(11, ui.color11->color());
+  saveMircColor(12, ui.color12->color());
+  saveMircColor(13, ui.color13->color());
+  saveMircColor(14, ui.color14->color());
+  saveMircColor(15, ui.color15->color());
+
+  s.setValue("onlineStatusFG", ui.onlineStatusFG->color());
+  s.setValue("onlineStatusBG", ui.onlineStatusBG->color());
+  s.setValue("onlineStatusUseBG", ui.onlineStatusUseBG->isChecked());
+  s.setValue("awayStatusFG", ui.awayStatusFG->color());
+  s.setValue("awayStatusBG", ui.awayStatusBG->color());
+  s.setValue("awayStatusUseBG", ui.awayStatusUseBG->isChecked());
+
+  load(); //TODO: remove when settings hash map is unnescessary
   setChangedState(false);
 }
 
+void ColorSettingsPage::saveColor(UiStyle::FormatType /*formatType*/, const QColor &/*foreground*/, const QColor &/*background*/, bool /*enableBG*/) { /*
+  QTextCharFormat format = QtUi::style()->format(formatType);
+  format.setForeground(QBrush(foreground));
+  if(enableBG)
+    format.setBackground(QBrush(background));
+  else
+    format.clearBackground();
+  QtUi::style()->setFormat(formatType, format, Settings::Custom); */
+}
+
+void ColorSettingsPage::saveMircColor(int /*num*/, const QColor &/*col*/) { /*
+  QTextCharFormat fgf, bgf;
+  fgf.setForeground(QBrush(col)); QtUi::style()->setFormat((UiStyle::FormatType)(UiStyle::FgCol00 | num<<24), fgf, Settings::Custom);
+  bgf.setBackground(QBrush(col)); QtUi::style()->setFormat((UiStyle::FormatType)(UiStyle::BgCol00 | num<<28), bgf, Settings::Custom); */
+}
+
 void ColorSettingsPage::widgetHasChanged() {
   bool changed = testHasChanged();
-  if(changed != hasChanged()) setChangedState(changed);
+  if(changed != hasChanged()) {
+    setChangedState(changed);
+  }
+  bufferviewPreview();
+  chatviewPreview();
 }
 
 bool ColorSettingsPage::testHasChanged() {
-  if(settings["InactiveActivity"].value<QColor>() != ui.inactiveActivity->color()) return true;
-  if(settings["NoActivity"].value<QColor>() != ui.noActivity->color()) return true;
-  if(settings["HighlightActivity"].value<QColor>() != ui.highlightActivity->color()) return true;
-  if(settings["NewMessageActivity"].value<QColor>() != ui.newMessageActivity->color()) return true;
-  if(settings["OtherActivity"].value<QColor>() != ui.otherActivity->color()) return true;
-
-  if(settings["ErrorMessageFG"].value<QColor>() != ui.errorMessageFG->color()) return true;
-  if(settings["ErrorMessageBG"].value<QColor>() != ui.errorMessageBG->color()) return true;
-  if(settings["NoticeMessageFG"].value<QColor>() != ui.noticeMessageFG->color()) return true;
-  if(settings["NoticeMessageBG"].value<QColor>() != ui.noticeMessageBG->color()) return true;
-  if(settings["PlainMessageFG"].value<QColor>() != ui.plainMessageFG->color()) return true;
-  if(settings["PlainMessageBG"].value<QColor>() != ui.plainMessageBG->color()) return true;
-  if(settings["ServerMessageFG"].value<QColor>() != ui.serverMessageFG->color()) return true;
-  if(settings["ServerMessageBG"].value<QColor>() != ui.serverMessageBG->color()) return true;
-  if(settings["ActionMessageFG"].value<QColor>() != ui.actionMessageFG->color()) return true;
-  if(settings["ActionMessageBG"].value<QColor>() != ui.actionMessageBG->color()) return true;
-  if(settings["JoinMessageFG"].value<QColor>() != ui.joinMessageFG->color()) return true;
-  if(settings["JoinMessageBG"].value<QColor>() != ui.joinMessageBG->color()) return true;
-  if(settings["KickMessageFG"].value<QColor>() != ui.kickMessageFG->color()) return true;
-  if(settings["KickMessageBG"].value<QColor>() != ui.kickMessageBG->color()) return true;
-  if(settings["ModeMessageFG"].value<QColor>() != ui.modeMessageFG->color()) return true;
-  if(settings["ModeMessageBG"].value<QColor>() != ui.modeMessageBG->color()) return true;
-  if(settings["PartMessageFG"].value<QColor>() != ui.partMessageFG->color()) return true;
-  if(settings["PartMessageBG"].value<QColor>() != ui.partMessageBG->color()) return true;
-  if(settings["QuitMessageFG"].value<QColor>() != ui.quitMessageFG->color()) return true;
-  if(settings["QuitMessageBG"].value<QColor>() != ui.quitMessageBG->color()) return true;
-  if(settings["RenameMessageFG"].value<QColor>() != ui.renameMessageFG->color()) return true;
-  if(settings["RenameMessageBG"].value<QColor>() != ui.renameMessageBG->color()) return true;
-
-  if(settings["TimestampFG"].value<QColor>() != ui.timestampFG->color()) return true;
-  if(settings["TimestampBG"].value<QColor>() != ui.timestampBG->color()) return true;
-  if(settings["SenderFG"].value<QColor>() != ui.senderFG->color()) return true;
-  if(settings["SenderBG"].value<QColor>() != ui.senderBG->color()) return true;
-  if(settings["NickFG"].value<QColor>() != ui.nickFG->color()) return true;
-  if(settings["NickBG"].value<QColor>() != ui.nickBG->color()) return true;
-  if(settings["HostmaskFG"].value<QColor>() != ui.hostmaskFG->color()) return true;
-  if(settings["HostmaskBG"].value<QColor>() != ui.hostmaskBG->color()) return true;
-  if(settings["ChannelnameFG"].value<QColor>() != ui.channelnameFG->color()) return true;
-  if(settings["ChannelnameBG"].value<QColor>() != ui.channelnameBG->color()) return true;
-  if(settings["ModeFlagsFG"].value<QColor>() != ui.modeFlagsFG->color()) return true;
-  if(settings["ModeFlagsBG"].value<QColor>() != ui.modeFlagsBG->color()) return true;
-  if(settings["UrlFG"].value<QColor>() != ui.urlFG->color()) return true;
-  if(settings["UrlBG"].value<QColor>() != ui.urlBG->color()) return true;
-
-  if(settings["Color0"].value<QColor>() != ui.color0->color()) return true;
-  if(settings["Color1"].value<QColor>() != ui.color1->color()) return true;
-  if(settings["Color2"].value<QColor>() != ui.color2->color()) return true;
-  if(settings["Color3"].value<QColor>() != ui.color3->color()) return true;
-  if(settings["Color4"].value<QColor>() != ui.color4->color()) return true;
-  if(settings["Color5"].value<QColor>() != ui.color5->color()) return true;
-  if(settings["Color6"].value<QColor>() != ui.color6->color()) return true;
-  if(settings["Color7"].value<QColor>() != ui.color7->color()) return true;
-  if(settings["Color8"].value<QColor>() != ui.color8->color()) return true;
-  if(settings["Color9"].value<QColor>() != ui.color9->color()) return true;
-  if(settings["Color10"].value<QColor>() != ui.color10->color()) return true;
-  if(settings["Color11"].value<QColor>() != ui.color11->color()) return true;
-  if(settings["Color12"].value<QColor>() != ui.color12->color()) return true;
-  if(settings["Color13"].value<QColor>() != ui.color13->color()) return true;
-  if(settings["Color14"].value<QColor>() != ui.color14->color()) return true;
-  if(settings["Color15"].value<QColor>() != ui.color15->color()) return true;
+  if(settings["InactiveActivityFG"].value<QColor>() != ui.inactiveActivityFG->color()) return true;
+  if(settings["InactiveActivityBG"].value<QColor>() != ui.inactiveActivityBG->color()) return true;
+  if(settings["InactiveActivityUseBG"].toBool() != ui.inactiveActivityUseBG->isChecked()) return true;
+  if(settings["NoActivityFG"].value<QColor>() != ui.noActivityFG->color()) return true;
+  if(settings["NoActivityBG"].value<QColor>() != ui.noActivityBG->color()) return true;
+  if(settings["NoActivityUseBG"].toBool() != ui.noActivityUseBG->isChecked()) return true;
+  if(settings["HighlightActivityFG"].value<QColor>() != ui.highlightActivityFG->color()) return true;
+  if(settings["HighlightActivityBG"].value<QColor>() != ui.highlightActivityBG->color()) return true;
+  if(settings["HighlightActivityUseBG"].toBool() != ui.highlightActivityUseBG->isChecked()) return true;
+  if(settings["NewMessageActivityFG"].value<QColor>() != ui.newMessageActivityFG->color()) return true;
+  if(settings["NewMessageActivityBG"].value<QColor>() != ui.newMessageActivityBG->color()) return true;
+  if(settings["NewMessageActivityUseBG"].toBool() != ui.newMessageActivityUseBG->isChecked()) return true;
+  if(settings["OtherActivityFG"].value<QColor>() != ui.otherActivityFG->color()) return true;
+  if(settings["OtherActivityBG"].value<QColor>() != ui.otherActivityBG->color()) return true;
+  if(settings["OtherActivityUseBG"].toBool() != ui.otherActivityUseBG->isChecked()) return true;
+/*
+  if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ErrorMsg).background().color() != ui.errorMessageBG->color()) return true;
+  if(settings["ErrorMessageUseBG"].toBool() != ui.errorMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::ErrorMsg).foreground().color() != ui.errorMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ErrorMsg).background().color() != ui.errorMessageBG->color()) return true;
+  if(settings["NoticeMessageUseBG"].toBool() != ui.noticeMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::PlainMsg).foreground().color() != ui.plainMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::PlainMsg).background().color() != ui.plainMessageBG->color()) return true;
+  if(settings["PlainMessageUseBG"].toBool() != ui.plainMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::ServerMsg).foreground().color() != ui.serverMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ServerMsg).background().color() != ui.serverMessageBG->color()) return true;
+  if(settings["ServerMessageUseBG"].toBool() != ui.serverMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::ActionMsg).foreground().color() != ui.actionMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ActionMsg).background().color() != ui.actionMessageBG->color()) return true;
+  if(settings["ActionMessageUseBG"].toBool() != ui.actionMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::JoinMsg).foreground().color() != ui.joinMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::JoinMsg).background().color() != ui.joinMessageBG->color()) return true;
+  if(settings["JoinMessageUseBG"].toBool() != ui.joinMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::KickMsg).foreground().color() != ui.kickMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::KickMsg).background().color() != ui.joinMessageBG->color()) return true;
+  if(settings["KickMessageUseBG"].toBool() != ui.kickMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::ModeMsg).foreground().color() != ui.modeMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ModeMsg).background().color() != ui.modeMessageBG->color()) return true;
+  if(settings["ModeMessageUseBG"].toBool() != ui.modeMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::NoticeMsg).foreground().color() != ui.noticeMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::NoticeMsg).background().color() != ui.noticeMessageBG->color()) return true;
+  if(settings["NoticeMessageUseBG"].toBool() != ui.noticeMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::PartMsg).foreground().color() != ui.partMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::PartMsg).background().color() != ui.partMessageBG->color()) return true;
+  if(settings["PartMessageUseBG"].toBool() != ui.partMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::QuitMsg).foreground().color() != ui.quitMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::QuitMsg).background().color() != ui.quitMessageBG->color()) return true;
+  if(settings["QuitMessageUseBG"].toBool() != ui.quitMessageUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::RenameMsg).foreground().color() != ui.renameMessageFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::RenameMsg).background().color() != ui.renameMessageBG->color()) return true;
+  if(settings["RenameMessageUseBG"].toBool() != ui.renameMessageUseBG->isChecked()) return true;
+*/
+  if(QtUi::style()->highlightColor() != ui.highlightColor->color()) return true;
+/*
+  if(QtUi::style()->format(UiStyle::Timestamp).foreground().color() != ui.timestampFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::Timestamp).background().color() != ui.timestampBG->color()) return true;
+  if(settings["TimestampUseBG"].toBool() != ui.timestampUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::Sender).foreground().color() != ui.senderFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::Sender).background().color() != ui.senderBG->color()) return true;
+  if(settings["SenderUseBG"].toBool() != ui.senderUseBG->isChecked()) return true;
+  if(settings["SenderAutoColor"].toBool() != ui.senderAutoColor->isChecked()) return true;
+*/
+  if(settings["NewMsgMarkerFG"].value<QColor>() != ui.newMsgMarkerFG->color()) return true;
+
+  /*
+  if(QtUi::style()->format(UiStyle::Nick).foreground().color() != ui.nickFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::Nick).background().color() != ui.nickBG->color()) return true;
+  if(settings["nickUseBG"].toBool() != ui.nickUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::Hostmask).foreground().color() != ui.hostmaskFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::Hostmask).background().color() != ui.hostmaskBG->color()) return true;
+  if(settings["hostmaskUseBG"].toBool() != ui.hostmaskUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::ChannelName).foreground().color() != ui.channelnameFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ChannelName).background().color() != ui.channelnameBG->color()) return true;
+  if(settings["channelnameUseBG"].toBool() != ui.channelnameUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::ModeFlags).foreground().color() != ui.modeFlagsFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::ModeFlags).background().color() != ui.modeFlagsBG->color()) return true;
+  if(settings["modeFlagsUseBG"].toBool() != ui.modeFlagsUseBG->isChecked()) return true;
+  if(QtUi::style()->format(UiStyle::Url).foreground().color() != ui.urlFG->color()) return true;
+  if(QtUi::style()->format(UiStyle::Url).background().color() != ui.urlBG->color()) return true;
+  if(settings["urlUseBG"].toBool() != ui.urlUseBG->isChecked()) return true;
+  */
+/*
+  if(QtUi::style()->format(UiStyle::FgCol00).foreground().color() != ui.color0->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol01).foreground().color() != ui.color1->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol02).foreground().color() != ui.color2->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol03).foreground().color() != ui.color3->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol04).foreground().color() != ui.color4->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol05).foreground().color() != ui.color5->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol06).foreground().color() != ui.color6->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol07).foreground().color() != ui.color7->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol08).foreground().color() != ui.color8->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol09).foreground().color() != ui.color9->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol10).foreground().color() != ui.color10->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol11).foreground().color() != ui.color11->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol12).foreground().color() != ui.color12->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol13).foreground().color() != ui.color13->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol14).foreground().color() != ui.color14->color()) return true;
+  if(QtUi::style()->format(UiStyle::FgCol15).foreground().color() != ui.color15->color()) return true;
+*/
+  if(settings["OnlineStatusFG"].value<QColor>() != ui.onlineStatusFG->color()) return true;
+  if(settings["OnlineStatusBG"].value<QColor>() != ui.onlineStatusBG->color()) return true;
+  if(settings["OnlineStatusUseBG"].toBool() != ui.onlineStatusUseBG->isChecked()) return true;
+  if(settings["AwayStatusFG"].value<QColor>() != ui.awayStatusFG->color()) return true;
+  if(settings["AwayStatusBG"].value<QColor>() != ui.awayStatusBG->color()) return true;
+  if(settings["AwayStatusUseBG"].toBool() != ui.awayStatusUseBG->isChecked()) return true;
 
   return false;
 }
@@ -505,8 +639,6 @@ void ColorSettingsPage::chooseColor(QWidget *widget) {
     button->setColor(color);
   }
   widgetHasChanged();
-  bufferviewPreview();
-  chatviewPreview();
 }
 
 void ColorSettingsPage::chatviewPreview() {
@@ -520,29 +652,47 @@ void ColorSettingsPage::bufferviewPreview() {
 
   QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("network")));
   ui.bufferviewPreview->insertTopLevelItem(0, topLevelItem);
+  topLevelItem->setForeground(0, QBrush(ui.noActivityFG->color()));
+  if(ui.noActivityUseBG->isChecked())
+    topLevelItem->setBackground(0, QBrush(ui.noActivityBG->color()));
 
-  QList<QTreeWidgetItem *> items;
-  items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Status Buffer"))));
 
-  QTreeWidgetItem *inactive = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#inactive channel")));
-  items.append(inactive);
-  inactive->setForeground(0, QBrush(ui.inactiveActivity->color()));
+  QList<QTreeWidgetItem *> items;
+  QTreeWidgetItem *statusBuffer = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Status Buffer")));
+  items.append(statusBuffer);
+  statusBuffer->setForeground(0, QBrush(ui.noActivityFG->color()));
+  if(ui.noActivityUseBG->isChecked())
+    statusBuffer->setBackground(0, QBrush(ui.noActivityBG->color()));
+
+  QTreeWidgetItem *inactiveActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#inactive channel")));
+  items.append(inactiveActivity);
+  inactiveActivity->setForeground(0, QBrush(ui.inactiveActivityFG->color()));
+  if(ui.inactiveActivityUseBG->isChecked())
+    inactiveActivity->setBackground(0, QBrush(ui.inactiveActivityBG->color()));
 
   QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with no activity")));
   items.append(noActivity);
-  noActivity->setForeground(0, QBrush(ui.noActivity->color()));
+  noActivity->setForeground(0, QBrush(ui.noActivityFG->color()));
+  if(ui.noActivityUseBG->isChecked())
+    noActivity->setBackground(0, QBrush(ui.noActivityBG->color()));
 
   QTreeWidgetItem *highlightActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with highlight")));
   items.append(highlightActivity);
-  highlightActivity->setForeground(0, QBrush(ui.highlightActivity->color()));
+  highlightActivity->setForeground(0, QBrush(ui.highlightActivityFG->color()));
+  if(ui.highlightActivityUseBG->isChecked())
+    highlightActivity->setBackground(0, QBrush(ui.highlightActivityBG->color()));
 
   QTreeWidgetItem *newMessageActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with new message")));
   items.append(newMessageActivity);
-  newMessageActivity->setForeground(0, QBrush(ui.newMessageActivity->color()));
+  newMessageActivity->setForeground(0, QBrush(ui.newMessageActivityFG->color()));
+  if(ui.newMessageActivityUseBG->isChecked())
+    newMessageActivity->setBackground(0, QBrush(ui.newMessageActivityBG->color()));
 
   QTreeWidgetItem *otherActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with other activity")));
   items.append(otherActivity);
-  otherActivity->setForeground(0, QBrush(ui.otherActivity->color()));
+  otherActivity->setForeground(0, QBrush(ui.otherActivityFG->color()));
+  if(ui.otherActivityUseBG->isChecked())
+    otherActivity->setBackground(0, QBrush(ui.otherActivityBG->color()));
 
   topLevelItem->insertChildren(0, items);
   ui.bufferviewPreview->expandItem(topLevelItem);