7 #include <QApplication> 21 {
"macosx",
false,
false,
true},
22 {
"windows",
true,
false,
false},
24 {
"other",
true,
true,
false}
31 void MakeSingleColorImage(QImage& img,
const QColor& colorbase)
33 img = img.convertToFormat(QImage::Format_ARGB32);
34 for (
int x = img.width(); x--; )
36 for (
int y = img.height(); y--; )
38 const QRgb rgb = img.pixel(x, y);
39 img.setPixel(x, y, qRgba(colorbase.red(), colorbase.green(), colorbase.blue(), qAlpha(rgb)));
44 QIcon ColorizeIcon(
const QIcon& ico,
const QColor& colorbase)
47 for (
const QSize& sz : ico.availableSizes())
49 QImage img(ico.pixmap(sz).toImage());
50 MakeSingleColorImage(img, colorbase);
51 new_ico.addPixmap(QPixmap::fromImage(img));
56 QImage ColorizeImage(
const QString& filename,
const QColor& colorbase)
59 MakeSingleColorImage(img, colorbase);
63 QIcon ColorizeIcon(
const QString& filename,
const QColor& colorbase)
65 return QIcon(QPixmap::fromImage(ColorizeImage(filename, colorbase)));
81 const QColor colorHighlightBg(QApplication::palette().color(QPalette::Highlight));
82 const QColor colorHighlightFg(QApplication::palette().color(QPalette::HighlightedText));
83 const QColor colorText(QApplication::palette().color(QPalette::WindowText));
84 const int colorTextLightness = colorText.lightness();
86 if (abs(colorHighlightBg.lightness() - colorTextLightness) < abs(colorHighlightFg.lightness() - colorTextLightness))
87 colorbase = colorHighlightBg;
89 colorbase = colorHighlightFg;
93 textColor = QColor(QApplication::palette().color(QPalette::WindowText));
99 return QImage(filename);
106 return QIcon(filename);