Brining back the removed color options
[quassel.git] / src / qtui / settingspages / colorsettingspage.cpp
index a301bd8..3038c18 100644 (file)
@@ -28,8 +28,6 @@
 #include <QColorDialog>
 #include <QPainter>
 
-// #define PHONDEV
-
 ColorSettingsPage::ColorSettingsPage(QWidget *parent)
   : SettingsPage(tr("Appearance"), tr("Color settings"), parent),
     mapper(new QSignalMapper(this))
@@ -46,26 +44,13 @@ ColorSettingsPage::ColorSettingsPage(QWidget *parent)
 
   connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseColor(QWidget *)));
 
-
-  
-#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);
-#endif
+  //disable unused buttons:
+  foreach(QWidget *widget, findChildren<QWidget *>()) {
+    if(widget->property("NotInUse").toBool()) {
+      widget->setEnabled(false);
+      widget->hide();
+    }
+  }
 }
 
 bool ColorSettingsPage::hasDefaults() const {
@@ -78,6 +63,7 @@ void ColorSettingsPage::defaults() {
   defaultUserActivity();
   defaultMessage();
   defaultMircColorCodes();
+  defaultNickview();
 
   widgetHasChanged();
   bufferviewPreview();
@@ -212,6 +198,17 @@ 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() {
   QtUiStyleSettings s("Colors");
   settings["InactiveActivityFG"] = s.value("inactiveActivityFG", QVariant(QColor(Qt::gray)));
@@ -378,6 +375,20 @@ 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();
@@ -464,6 +475,13 @@ 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);
 }
@@ -592,6 +610,13 @@ 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;
 }