From 22643edb21a100b6671cdcab7b8b8fa6b8ed5890 Mon Sep 17 00:00:00 2001 From: Project579 Date: Mon, 31 Dec 2018 01:18:01 +0100 Subject: Added Alpha channel to color pickers --- src/mainwindow.cpp | 1 + src/settingsdialog.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 27ffc71e..f2206062 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3346,6 +3346,7 @@ void MainWindow::setColor_clicked() QSettings &settings = m_OrganizerCore.settings().directInterface(); ModInfo::Ptr modInfo = ModInfo::getByIndex(m_ContextRow); QColorDialog dialog(this); + dialog.setOption(QColorDialog::ShowAlphaChannel); QColor currentColor = modInfo->getColor(); QColor previousColor = settings.value("previousSeparatorColor", QColor()).value(); if (currentColor.isValid()) diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 0d96e63a..beed5dba 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -232,7 +232,7 @@ void SettingsDialog::on_browseGameDirBtn_clicked() void SettingsDialog::on_containsBtn_clicked() { - QColor result = QColorDialog::getColor(m_ContainsColor, this); + QColor result = QColorDialog::getColor(m_ContainsColor, this, "Color Picker: Mod contains selected plugin", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_ContainsColor = result; @@ -250,7 +250,7 @@ void SettingsDialog::on_containsBtn_clicked() void SettingsDialog::on_containedBtn_clicked() { - QColor result = QColorDialog::getColor(m_ContainedColor, this); + QColor result = QColorDialog::getColor(m_ContainedColor, this, "ColorPicker: Plugin is Contained in selected Mod", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_ContainedColor = result; @@ -268,7 +268,7 @@ void SettingsDialog::on_containedBtn_clicked() void SettingsDialog::on_overwrittenBtn_clicked() { - QColor result = QColorDialog::getColor(m_OverwrittenColor, this); + QColor result = QColorDialog::getColor(m_OverwrittenColor, this, "ColorPicker: Is overwritten", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_OverwrittenColor = result; @@ -286,7 +286,7 @@ void SettingsDialog::on_overwrittenBtn_clicked() void SettingsDialog::on_overwritingBtn_clicked() { - QColor result = QColorDialog::getColor(m_OverwritingColor, this); + QColor result = QColorDialog::getColor(m_OverwritingColor, this, "ColorPicker: Is overwriting", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_OverwritingColor = result; -- cgit v1.3.1 From 4809c301324b5ebcdad4146325023f53d20d05d8 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Sun, 30 Dec 2018 20:19:23 -0600 Subject: Apply alpha color settings to the settings dialog --- src/settings.cpp | 23 ++++++-------- src/settingsdialog.cpp | 82 +++++++++++++++----------------------------------- src/settingsdialog.h | 2 ++ 3 files changed, 36 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/settings.cpp b/src/settings.cpp index 42bf1357..8f768fd2 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -197,9 +197,12 @@ QString Settings::deObfuscate(const QString &password) return QString::fromUtf8(buffer.constData()); } -QColor Settings::getIdealTextColor(const QColor& rBackgroundColor) +QColor Settings::getIdealTextColor(const QColor& rBackgroundColor) { - const int THRESHOLD = 106; + if (rBackgroundColor.alpha() == 0) + return QColor(Qt::black); + + const int THRESHOLD = 106 * 255.0f / rBackgroundColor.alpha(); int BackgroundDelta = (rBackgroundColor.red() * 0.299) + (rBackgroundColor.green() * 0.587) + (rBackgroundColor.blue() * 0.114); return QColor((255 - BackgroundDelta <= THRESHOLD) ? Qt::black : Qt::white); } @@ -778,18 +781,10 @@ Settings::GeneralTab::GeneralTab(Settings *m_parent, SettingsDialog &m_dialog) */ //version with stylesheet - m_overwritingBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg( - m_parent->modlistOverwritingLooseColor().name()).arg(getIdealTextColor( - m_parent->modlistOverwritingLooseColor()).name())); - m_overwrittenBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg( - m_parent->modlistOverwrittenLooseColor().name()).arg(getIdealTextColor( - m_parent->modlistOverwrittenLooseColor()).name())); - m_containsBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg( - m_parent->modlistContainsPluginColor().name()).arg(getIdealTextColor( - m_parent->modlistContainsPluginColor()).name())); - m_containedBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg( - m_parent->pluginListContainedColor().name()).arg(getIdealTextColor( - m_parent->pluginListContainedColor()).name())); + m_dialog.setButtonColor(m_overwritingBtn, m_parent->modlistOverwritingLooseColor()); + m_dialog.setButtonColor(m_overwrittenBtn, m_parent->modlistOverwrittenLooseColor()); + m_dialog.setButtonColor(m_containsBtn, m_parent->modlistContainsPluginColor()); + m_dialog.setButtonColor(m_containedBtn, m_parent->pluginListContainedColor()); m_dialog.setOverwritingColor(m_parent->modlistOverwritingLooseColor()); m_dialog.setOverwrittenColor(m_parent->modlistOverwrittenLooseColor()); diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index beed5dba..b975fa75 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -42,7 +42,6 @@ along with Mod Organizer. If not, see . using namespace MOBase; - SettingsDialog::SettingsDialog(PluginContainer *pluginContainer, QWidget *parent) : TutorableDialog("SettingsDialog", parent) , ui(new Ui::SettingsDialog) @@ -71,6 +70,23 @@ QString SettingsDialog::getColoredButtonStyleSheet() const "}"); } +void SettingsDialog::setButtonColor(QPushButton *button, QColor &color) +{ + button->setStyleSheet( + QString("QPushButton {" + "background-color: rgba(%1, %2, %3, %4);" + "color: %5;" + "border: 1px solid;" + "padding: 3px;" + "}") + .arg(color.red()) + .arg(color.green()) + .arg(color.blue()) + .arg(color.alpha()) + .arg(Settings::getIdealTextColor(color).name()) + ); +}; + void SettingsDialog::accept() { QString newModPath = ui->modDirEdit->text(); @@ -235,16 +251,7 @@ void SettingsDialog::on_containsBtn_clicked() QColor result = QColorDialog::getColor(m_ContainsColor, this, "Color Picker: Mod contains selected plugin", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_ContainsColor = result; - - ui->containsBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - result.name()).arg(Settings::getIdealTextColor( - result).name())); - - /*ui->containsBtn->setAutoFillBackground(true); - ui->containsBtn->setPalette(QPalette(result)); - QPalette palette = ui->containsBtn->palette(); - palette.setColor(QPalette::Background, result); - ui->containsBtn->setPalette(palette);*/ + setButtonColor(ui->containsBtn, result); } } @@ -253,16 +260,7 @@ void SettingsDialog::on_containedBtn_clicked() QColor result = QColorDialog::getColor(m_ContainedColor, this, "ColorPicker: Plugin is Contained in selected Mod", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_ContainedColor = result; - - ui->containedBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - result.name()).arg(Settings::getIdealTextColor( - result).name())); - - /*ui->containedBtn->setAutoFillBackground(true); - ui->containedBtn->setPalette(QPalette(result)); - QPalette palette = ui->containedBtn->palette(); - palette.setColor(QPalette::Background, result); - ui->containedBtn->setPalette(palette);*/ + setButtonColor(ui->containedBtn, result); } } @@ -271,16 +269,7 @@ void SettingsDialog::on_overwrittenBtn_clicked() QColor result = QColorDialog::getColor(m_OverwrittenColor, this, "ColorPicker: Is overwritten", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_OverwrittenColor = result; - - ui->overwrittenBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - result.name()).arg(Settings::getIdealTextColor( - result).name())); - - /*ui->overwrittenBtn->setAutoFillBackground(true); - ui->overwrittenBtn->setPalette(QPalette(result)); - QPalette palette = ui->overwrittenBtn->palette(); - palette.setColor(QPalette::Background, result); - ui->overwrittenBtn->setPalette(palette);*/ + setButtonColor(ui->overwrittenBtn, result); } } @@ -289,16 +278,7 @@ void SettingsDialog::on_overwritingBtn_clicked() QColor result = QColorDialog::getColor(m_OverwritingColor, this, "ColorPicker: Is overwriting", QColorDialog::ShowAlphaChannel); if (result.isValid()) { m_OverwritingColor = result; - - ui->overwritingBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - result.name()).arg(Settings::getIdealTextColor( - result).name())); - - /*ui->overwritingBtn->setAutoFillBackground(true); - ui->overwritingBtn->setPalette(QPalette(result)); - QPalette palette = ui->overwritingBtn->palette(); - palette.setColor(QPalette::Background, result); - ui->overwritingBtn->setPalette(palette);*/ + setButtonColor(ui->overwritingBtn, result); } } @@ -309,22 +289,10 @@ void SettingsDialog::on_resetColorsBtn_clicked() m_ContainsColor = QColor(0, 0, 255, 64); m_ContainedColor = QColor(0, 0, 255, 64); - ui->overwritingBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - QColor(255, 0, 0, 64).name()).arg(Settings::getIdealTextColor( - QColor(255, 0, 0, 64)).name())); - - ui->overwrittenBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - QColor(0, 255, 0, 64).name()).arg(Settings::getIdealTextColor( - QColor(0, 255, 0, 64)).name())); - - ui->containsBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - QColor(0, 0, 255, 64).name()).arg(Settings::getIdealTextColor( - QColor(0, 0, 255, 64)).name())); - - ui->containedBtn->setStyleSheet(getColoredButtonStyleSheet().arg( - QColor(0, 0, 255, 64).name()).arg(Settings::getIdealTextColor( - QColor(0, 0, 255, 64)).name())); - + setButtonColor(ui->overwritingBtn, m_OverwritingColor); + setButtonColor(ui->overwrittenBtn, m_OverwrittenColor); + setButtonColor(ui->containsBtn, m_ContainsColor); + setButtonColor(ui->containedBtn, m_ContainedColor); } void SettingsDialog::on_resetDialogsButton_clicked() diff --git a/src/settingsdialog.h b/src/settingsdialog.h index f0567d87..b005f928 100644 --- a/src/settingsdialog.h +++ b/src/settingsdialog.h @@ -50,6 +50,8 @@ public: */ QString getColoredButtonStyleSheet() const; + void setButtonColor(QPushButton *button, QColor &color); + public slots: virtual void accept(); -- cgit v1.3.1