Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanek Bevendorff <janek@jbev.net>2019-10-21 11:49:09 +0300
committerJanek Bevendorff <janek@jbev.net>2020-05-03 10:59:36 +0300
commitd9214db404571044ae94f92c9aba0963a0243832 (patch)
tree291e7666ec2c3464ad736632f4b1fab822bd1062 /src/core/Resources.cpp
parent596d2cf425c3c8495b4c4a58c61798afe9fdd536 (diff)
Implement Caps Lock warning
Diffstat (limited to 'src/core/Resources.cpp')
-rw-r--r--src/core/Resources.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/core/Resources.cpp b/src/core/Resources.cpp
index 5f13a7cdf..c4f747232 100644
--- a/src/core/Resources.cpp
+++ b/src/core/Resources.cpp
@@ -115,11 +115,11 @@ QIcon Resources::trayIconUnlocked()
return useDarkIcon() ? icon("keepassxc-dark", false) : icon("keepassxc-unlocked", false);
}
-QIcon Resources::icon(const QString& name, bool recolor)
+QIcon Resources::icon(const QString& name, bool recolor, const QColor& overrideColor)
{
QIcon icon = m_iconCache.value(name);
- if (!icon.isNull()) {
+ if (!icon.isNull() && !overrideColor.isValid()) {
return icon;
}
@@ -128,28 +128,36 @@ QIcon Resources::icon(const QString& name, bool recolor)
QImage img = icon.pixmap(128, 128).toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
icon = {};
- QPalette palette = getMainWindow()->palette();
QPainter painter(&img);
painter.setCompositionMode(QPainter::CompositionMode_SourceAtop);
- painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Normal, QPalette::WindowText));
- icon.addPixmap(QPixmap::fromImage(img), QIcon::Normal);
+ if (!overrideColor.isValid()) {
+ QPalette palette = getMainWindow()->palette();
+ painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Normal, QPalette::WindowText));
+ icon.addPixmap(QPixmap::fromImage(img), QIcon::Normal);
- painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Active, QPalette::ButtonText));
- icon.addPixmap(QPixmap::fromImage(img), QIcon::Active);
+ painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Active, QPalette::ButtonText));
+ icon.addPixmap(QPixmap::fromImage(img), QIcon::Active);
- painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Active, QPalette::HighlightedText));
- icon.addPixmap(QPixmap::fromImage(img), QIcon::Selected);
+ painter.fillRect(
+ 0, 0, img.width(), img.height(), palette.color(QPalette::Active, QPalette::HighlightedText));
+ icon.addPixmap(QPixmap::fromImage(img), QIcon::Selected);
- painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Disabled, QPalette::WindowText));
- icon.addPixmap(QPixmap::fromImage(img), QIcon::Disabled);
+ painter.fillRect(0, 0, img.width(), img.height(), palette.color(QPalette::Disabled, QPalette::WindowText));
+ icon.addPixmap(QPixmap::fromImage(img), QIcon::Disabled);
+ } else {
+ painter.fillRect(0, 0, img.width(), img.height(), overrideColor);
+ icon.addPixmap(QPixmap::fromImage(img), QIcon::Normal);
+ }
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
icon.setIsMask(true);
#endif
}
- m_iconCache.insert(name, icon);
+ if (!overrideColor.isValid()) {
+ m_iconCache.insert(name, icon);
+ }
return icon;
}