fix: use a palette for dialogs (#6098)

This commit is contained in:
nerix
2025-03-20 14:03:46 +01:00
committed by GitHub
parent 9750f81ff0
commit a70acbfda9
6 changed files with 30 additions and 14 deletions
+23
View File
@@ -555,6 +555,29 @@ void Theme::parseFrom(const QJsonObject &root, bool isCustomTheme)
this->buttons.copy = getResources().buttons.copyLight;
this->buttons.pin = getResources().buttons.pinDisabledLight;
}
// This assumes that we never update the application palette
auto palette = QApplication::palette();
if (this->isLightTheme())
{
palette.setColor(QPalette::Window, this->window.background);
palette.setColor(QPalette::Base, {0xe9, 0xe9, 0xe9});
palette.setColor(QPalette::AlternateBase, {0xe0, 0xe0, 0xe0});
palette.setColor(QPalette::Button, {0xd9, 0xd9, 0xd9});
palette.setColor(QPalette::Text, this->window.text);
palette.setColor(QPalette::WindowText, this->window.text);
palette.setColor(QPalette::ButtonText, this->window.text);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Link, Qt::blue);
palette.setColor(QPalette::LinkVisited, Qt::magenta);
palette.setColor(QPalette::Highlight, {42, 130, 218});
palette.setColor(QPalette::HighlightedText, Qt::white);
palette.setColor(QPalette::PlaceholderText, {0x90, 0x90, 0x90});
}
this->palette = palette;
}
bool Theme::isAutoReloading() const
+3
View File
@@ -7,6 +7,7 @@
#include <pajlada/settings/setting.hpp>
#include <QColor>
#include <QJsonObject>
#include <QPalette>
#include <QPixmap>
#include <QString>
#include <QTimer>
@@ -155,6 +156,8 @@ public:
QPixmap pin;
} buttons;
QPalette palette;
void normalizeColor(QColor &color) const;
void update();