#include <QColorDialog>
#include <QPainter>
-// #define PHONDEV
-
ColorSettingsPage::ColorSettingsPage(QWidget *parent)
: SettingsPage(tr("Appearance"), tr("Color settings"), parent),
mapper(new QSignalMapper(this))
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 {
defaultUserActivity();
defaultMessage();
defaultMircColorCodes();
+ defaultNickview();
widgetHasChanged();
bufferviewPreview();
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)));
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();
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);
}
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;
}