hiding unused settings from the colors settings page
[quassel.git] / src / qtui / settingspages / colorsettingspage.cpp
index 9ea8758..01bc517 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>
 
-// #define PHONDEV
-
 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.inactiveActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.inactiveActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.inactiveActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.noActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.highlightActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.highlightActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.highlightActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.newMessageActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.newMessageActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.newMessageActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.otherActivityFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.otherActivityBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.otherActivityUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-
-  mapper->setMapping(ui.inactiveActivityFG, ui.inactiveActivityFG);
-  mapper->setMapping(ui.inactiveActivityBG, ui.inactiveActivityBG);
-  mapper->setMapping(ui.highlightActivityFG, ui.highlightActivityFG);
-  mapper->setMapping(ui.highlightActivityBG, ui.highlightActivityBG);
-  mapper->setMapping(ui.newMessageActivityFG, ui.newMessageActivityFG);
-  mapper->setMapping(ui.newMessageActivityBG, ui.newMessageActivityBG);
-  mapper->setMapping(ui.noActivityFG, ui.noActivityFG);
-  mapper->setMapping(ui.noActivityBG, ui.noActivityBG);
-  mapper->setMapping(ui.otherActivityFG, ui.otherActivityFG);
-  mapper->setMapping(ui.otherActivityBG, ui.otherActivityBG);
-
-
-  //Chatview tab:
-  connect(ui.errorMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.errorMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.errorMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.noticeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noticeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.noticeMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.plainMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.plainMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.plainMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.serverMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.serverMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.serverMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.actionMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.actionMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.actionMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.joinMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.joinMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.joinMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.kickMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.kickMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.kickMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.modeMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.partMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.partMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.partMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.quitMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.quitMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.quitMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.renameMessageFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.renameMessageBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.renameMessageUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.highlightColor, 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);
-  mapper->setMapping(ui.highlightColor, ui.highlightColor);
-
-  //Message Layout tab:
-  connect(ui.timestampFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.timestampBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.timestampUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.senderFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.senderBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.senderUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.nickFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.nickBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.nickUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.hostmaskFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.hostmaskBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.hostmaskUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.channelnameFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.channelnameBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.channelnameUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.modeFlagsFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeFlagsBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.modeFlagsUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.urlFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.urlBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.urlUseBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-
-  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);
-
-  //NickView tab:
-  connect(ui.onlineStatusFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.onlineStatusBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.onlineStatusBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-  connect(ui.awayStatusFG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.awayStatusBG, SIGNAL(clicked()), mapper, SLOT(map()));
-  connect(ui.awayStatusBG, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
-
-  mapper->setMapping(ui.onlineStatusFG, ui.onlineStatusFG);
-  mapper->setMapping(ui.onlineStatusBG, ui.onlineStatusBG);
-  mapper->setMapping(ui.awayStatusFG, ui.awayStatusFG);
-  mapper->setMapping(ui.awayStatusBG, ui.awayStatusBG);
+  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:
-#ifndef PHONDEV
-  ui.inactiveActivityUseBG->setEnabled(false);
-  ui.noActivityUseBG->setEnabled(false);
-  ui.highlightActivityUseBG->setEnabled(false);
-  ui.newMessageActivityUseBG->setEnabled(false);
-  ui.otherActivityUseBG->setEnabled(false);
-
-  ui.nickFG->setEnabled(false);
-  ui.nickUseBG->setEnabled(false);
-  ui.hostmaskFG->setEnabled(false);
-  ui.hostmaskUseBG->setEnabled(false);
-  ui.channelnameFG->setEnabled(false);
-  ui.channelnameUseBG->setEnabled(false);
-  ui.modeFlagsFG->setEnabled(false);
-  ui.modeFlagsUseBG->setEnabled(false);
-  ui.urlFG->setEnabled(false);
-  ui.urlUseBG->setEnabled(false);
-
-  ui.onlineStatusUseBG->setEnabled(false);
-  ui.awayStatusUseBG->setEnabled(false);
-#endif
+  foreach(QWidget *widget, findChildren<QWidget *>()) {
+    if(widget->property("NotInUse").toBool()) {
+      widget->setEnabled(false);
+      widget->hide();
+    }
+  }
 }
 
 bool ColorSettingsPage::hasDefaults() const {
@@ -245,7 +62,6 @@ void ColorSettingsPage::defaults() {
   defaultUserActivity();
   defaultMessage();
   defaultMircColorCodes();
-  defaultNickview();
 
   widgetHasChanged();
   bufferviewPreview();
@@ -253,14 +69,6 @@ void ColorSettingsPage::defaults() {
 }
 
 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);
@@ -335,6 +143,7 @@ void ColorSettingsPage::defaultMessage() {
   ui.senderBG->setColor(QColor("white"));
   ui.senderBG->setEnabled(false);
   ui.senderUseBG->setChecked(false);
+  ui.newMsgMarkerFG->setColor(Qt::red);
 
   /*
   ui.nickFG->setColor(QColor("black"));
@@ -379,33 +188,8 @@ void ColorSettingsPage::defaultMircColorCodes() {
   ui.color15->setColor(QtUi::style()->format(UiStyle::FgCol15, Settings::Default).foreground().color());
 }
 
-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("QtUiStyle/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());
-
+  QtUiStyleSettings s("Colors");
   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)));
@@ -512,6 +296,8 @@ void ColorSettingsPage::load() {
   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["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()) {
@@ -554,33 +340,13 @@ void ColorSettingsPage::load() {
   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("QtUiStyle/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());
+  QtUiStyleSettings s("Colors");
   s.setValue("highlightActivityFG", ui.highlightActivityFG->color());
   s.setValue("highlightActivityBG", ui.highlightActivityBG->color());
   s.setValue("highlightActivityUseBG", ui.highlightActivityUseBG->isChecked());
@@ -622,6 +388,7 @@ void ColorSettingsPage::save() {
   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("newMsgMarkerFG", ui.newMsgMarkerFG->color());
 
   /*
   saveColor(UiStyle::Nick, ui.nickFG->color(), ui.nickBG->color(), ui.nickUseBG->isChecked());
@@ -653,13 +420,6 @@ void ColorSettingsPage::save() {
   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);
 }
@@ -690,12 +450,6 @@ void ColorSettingsPage::widgetHasChanged() {
 }
 
 bool ColorSettingsPage::testHasChanged() {
-  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;
@@ -751,6 +505,7 @@ bool ColorSettingsPage::testHasChanged() {
   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["NewMsgMarkerFG"].value<QColor>() != ui.newMsgMarkerFG->color()) return true;
 
   /*
   if(QtUi::style()->format(UiStyle::Nick).foreground().color() != ui.nickFG->color()) return true;
@@ -787,13 +542,6 @@ bool ColorSettingsPage::testHasChanged() {
   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;
 }
 
@@ -814,47 +562,32 @@ void ColorSettingsPage::chatviewPreview() {
 void ColorSettingsPage::bufferviewPreview() {
   ui.bufferviewPreview->clear();
   ui.bufferviewPreview->setColumnCount(1);
-  ui.bufferviewPreview->setHeaderLabels(QStringList("Buffers"));
+  ui.bufferviewPreview->setHeaderLabels(QStringList(tr("Buffers")));
 
-  QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("network")));
+  QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("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;
-  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")));
+  QTreeWidgetItem *inactiveActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("#incative")));
   items.append(inactiveActivity);
-  inactiveActivity->setForeground(0, QBrush(ui.inactiveActivityFG->color()));
-  if(ui.inactiveActivityUseBG->isChecked())
-    inactiveActivity->setBackground(0, QBrush(ui.inactiveActivityBG->color()));
+  inactiveActivity->setForeground(0, QPalette().color(QPalette::Dark));
 
-  QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with no activity")));
+  QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("#regular")));
   items.append(noActivity);
-  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")));
+  QTreeWidgetItem *highlightActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("#highlight")));
   items.append(highlightActivity);
   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")));
+  QTreeWidgetItem *newMessageActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("#new message")));
   items.append(newMessageActivity);
   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")));
+  QTreeWidgetItem *otherActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("#other activity")));
   items.append(otherActivity);
   otherActivity->setForeground(0, QBrush(ui.otherActivityFG->color()));
   if(ui.otherActivityUseBG->isChecked())