mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-09-06 21:51:04 +02:00
qt: Make PlatformStyle aware of runtime palette change
This change is a prerequisite to support changeable appearance on macOS.
This commit is contained in:
@@ -71,25 +71,28 @@ PlatformStyle::PlatformStyle(const QString &_name, bool _imagesOnButtons, bool _
|
|||||||
name(_name),
|
name(_name),
|
||||||
imagesOnButtons(_imagesOnButtons),
|
imagesOnButtons(_imagesOnButtons),
|
||||||
colorizeIcons(_colorizeIcons),
|
colorizeIcons(_colorizeIcons),
|
||||||
useExtraSpacing(_useExtraSpacing),
|
useExtraSpacing(_useExtraSpacing)
|
||||||
singleColor(0,0,0),
|
{
|
||||||
textColor(0,0,0)
|
}
|
||||||
|
|
||||||
|
QColor PlatformStyle::TextColor() const
|
||||||
|
{
|
||||||
|
return QApplication::palette().color(QPalette::WindowText);
|
||||||
|
}
|
||||||
|
|
||||||
|
QColor PlatformStyle::SingleColor() const
|
||||||
{
|
{
|
||||||
// Determine icon highlighting color
|
|
||||||
if (colorizeIcons) {
|
if (colorizeIcons) {
|
||||||
const QColor colorHighlightBg(QApplication::palette().color(QPalette::Highlight));
|
const QColor colorHighlightBg(QApplication::palette().color(QPalette::Highlight));
|
||||||
const QColor colorHighlightFg(QApplication::palette().color(QPalette::HighlightedText));
|
const QColor colorHighlightFg(QApplication::palette().color(QPalette::HighlightedText));
|
||||||
const QColor colorText(QApplication::palette().color(QPalette::WindowText));
|
const QColor colorText(QApplication::palette().color(QPalette::WindowText));
|
||||||
const int colorTextLightness = colorText.lightness();
|
const int colorTextLightness = colorText.lightness();
|
||||||
QColor colorbase;
|
if (abs(colorHighlightBg.lightness() - colorTextLightness) < abs(colorHighlightFg.lightness() - colorTextLightness)) {
|
||||||
if (abs(colorHighlightBg.lightness() - colorTextLightness) < abs(colorHighlightFg.lightness() - colorTextLightness))
|
return colorHighlightBg;
|
||||||
colorbase = colorHighlightBg;
|
|
||||||
else
|
|
||||||
colorbase = colorHighlightFg;
|
|
||||||
singleColor = colorbase;
|
|
||||||
}
|
}
|
||||||
// Determine text color
|
return colorHighlightFg;
|
||||||
textColor = QColor(QApplication::palette().color(QPalette::WindowText));
|
}
|
||||||
|
return {0, 0, 0};
|
||||||
}
|
}
|
||||||
|
|
||||||
QImage PlatformStyle::SingleColorImage(const QString& filename) const
|
QImage PlatformStyle::SingleColorImage(const QString& filename) const
|
||||||
|
@@ -21,8 +21,8 @@ public:
|
|||||||
bool getImagesOnButtons() const { return imagesOnButtons; }
|
bool getImagesOnButtons() const { return imagesOnButtons; }
|
||||||
bool getUseExtraSpacing() const { return useExtraSpacing; }
|
bool getUseExtraSpacing() const { return useExtraSpacing; }
|
||||||
|
|
||||||
QColor TextColor() const { return textColor; }
|
QColor TextColor() const;
|
||||||
QColor SingleColor() const { return singleColor; }
|
QColor SingleColor() const;
|
||||||
|
|
||||||
/** Colorize an image (given filename) with the icon color */
|
/** Colorize an image (given filename) with the icon color */
|
||||||
QImage SingleColorImage(const QString& filename) const;
|
QImage SingleColorImage(const QString& filename) const;
|
||||||
@@ -43,9 +43,6 @@ private:
|
|||||||
bool imagesOnButtons;
|
bool imagesOnButtons;
|
||||||
bool colorizeIcons;
|
bool colorizeIcons;
|
||||||
bool useExtraSpacing;
|
bool useExtraSpacing;
|
||||||
QColor singleColor;
|
|
||||||
QColor textColor;
|
|
||||||
/* ... more to come later */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BITCOIN_QT_PLATFORMSTYLE_H
|
#endif // BITCOIN_QT_PLATFORMSTYLE_H
|
||||||
|
Reference in New Issue
Block a user