strip senderFrame and unused colorsettings
[quassel.git] / src / qtui / settingspages / colorsettingspage.cpp
index a301bd8..b226e67 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();
@@ -167,6 +153,7 @@ void ColorSettingsPage::defaultMessage() {
   ui.senderBG->setColor(QColor("white"));
   ui.senderBG->setEnabled(false);
   ui.senderUseBG->setChecked(false);
+  ui.senderAutoColor->setChecked(true);  
   ui.newMsgMarkerFG->setColor(Qt::red);
 
   /*
@@ -212,6 +199,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)));
@@ -334,6 +332,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["SenderAutoColor"] = s.value("senderAutoColor", QVariant(true));
+  ui.senderAutoColor->setChecked(settings["SenderAutoColor"].toBool());
   settings["NewMsgMarkerFG"] = s.value("newMsgMarkerFG", QColor(Qt::red));
   ui.newMsgMarkerFG->setColor(settings["NewMsgMarkerFG"].value<QColor>());
 
@@ -378,6 +378,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();
@@ -432,6 +446,8 @@ 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("senderAutoColor", ui.senderAutoColor->isChecked());
+  QtUi::style()->setSenderAutoColor(ui.senderAutoColor->isChecked());
   s.setValue("newMsgMarkerFG", ui.newMsgMarkerFG->color());
 
   /*
@@ -464,6 +480,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);
 }
@@ -555,6 +578,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["SenderAutoColor"].toBool() != ui.senderAutoColor->isChecked()) return true;
   if(settings["NewMsgMarkerFG"].value<QColor>() != ui.newMsgMarkerFG->color()) return true;
 
   /*
@@ -592,6 +616,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;
 }