summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp1
-rw-r--r--src/settings.cpp31
-rw-r--r--src/settingsdialog.cpp90
-rw-r--r--src/settingsdialog.h2
4 files changed, 49 insertions, 75 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 6f49822a..6b07992f 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3381,6 +3381,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<QColor>();
if (currentColor.isValid())
diff --git a/src/settings.cpp b/src/settings.cpp
index 3202dffe..6d16cfc6 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);
}
@@ -795,24 +798,12 @@ 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_overwritingArchiveBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg(
- m_parent->modlistOverwritingArchiveColor().name()).arg(getIdealTextColor(
- m_parent->modlistOverwritingArchiveColor()).name()));
- m_overwrittenArchiveBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg(
- m_parent->modlistOverwrittenArchiveColor().name()).arg(getIdealTextColor(
- m_parent->modlistOverwrittenArchiveColor()).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_overwritingArchiveBtn, m_parent->modlistOverwritingArchiveColor());
+ m_dialog.setButtonColor(m_overwrittenArchiveBtn, m_parent->modlistOverwrittenArchiveColor());
+ 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 75e08afd..bbd9a22c 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -42,7 +42,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
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();
@@ -232,73 +248,55 @@ 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;
-
- ui->containsBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- result.name()).arg(Settings::getIdealTextColor(
- result).name()));
+ setButtonColor(ui->containsBtn, result);
}
}
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;
-
- ui->containedBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- result.name()).arg(Settings::getIdealTextColor(
- result).name()));
+ setButtonColor(ui->containedBtn, result);
}
}
void SettingsDialog::on_overwrittenBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwrittenColor, this);
+ QColor result = QColorDialog::getColor(m_OverwrittenColor, this, "ColorPicker: Is overwritten (loose files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwrittenColor = result;
-
- ui->overwrittenBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- result.name()).arg(Settings::getIdealTextColor(
- result).name()));
+ setButtonColor(ui->overwrittenBtn, result);
}
}
void SettingsDialog::on_overwritingBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwritingColor, this);
+ QColor result = QColorDialog::getColor(m_OverwritingColor, this, "ColorPicker: Is overwriting (loose files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwritingColor = result;
-
- ui->overwritingBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- result.name()).arg(Settings::getIdealTextColor(
- result).name()));
+ setButtonColor(ui->overwritingBtn, result);
}
}
void SettingsDialog::on_overwrittenArchiveBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwrittenArchiveColor, this);
+ QColor result = QColorDialog::getColor(m_OverwrittenArchiveColor, this, "ColorPicker: Is overwritten (archive files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwrittenArchiveColor = result;
-
- ui->overwrittenArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- result.name()).arg(Settings::getIdealTextColor(
- result).name()));
+ setButtonColor(ui->overwrittenArchiveBtn, result);
}
}
void SettingsDialog::on_overwritingArchiveBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwritingArchiveColor, this);
+ QColor result = QColorDialog::getColor(m_OverwritingArchiveColor, this, "ColorPicker: Is overwriting (archive files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwritingArchiveColor = result;
-
- ui->overwritingArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- result.name()).arg(Settings::getIdealTextColor(
- result).name()));
+ setButtonColor(ui->overwritingArchiveBtn, result);
}
}
@@ -311,30 +309,12 @@ 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->overwritingArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- QColor(255, 0, 255, 64).name()).arg(Settings::getIdealTextColor(
- QColor(255, 0, 255, 64)).name()));
-
- ui->overwrittenArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
- QColor(0, 255, 255, 64).name()).arg(Settings::getIdealTextColor(
- QColor(0, 255, 255, 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->overwritingArchiveBtn, m_OverwritingArchiveColor);
+ setButtonColor(ui->overwrittenArchiveBtn, m_OverwrittenArchiveColor);
+ 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 e3c7d413..6357f064 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();