Fix on/off icons not being redrawn on theme change

This commit is contained in:
Janek Bevendorff
2021-01-31 20:08:03 +01:00
parent b55f419386
commit 4e90cb5818
4 changed files with 11 additions and 29 deletions

View File

@@ -194,30 +194,9 @@ QIcon Icons::icon(const QString& name, bool recolor, const QColor& overrideColor
return icon;
}
QIcon Icons::onOffIcon(const QString& name, bool recolor)
QIcon Icons::onOffIcon(const QString& name, bool on, bool recolor)
{
QString cacheName = "onoff/" + name;
QIcon icon = m_iconCache.value(cacheName);
if (!icon.isNull()) {
return icon;
}
const QSize size(48, 48);
QIcon on = Icons::icon(name + "-on", recolor);
icon.addPixmap(on.pixmap(size, QIcon::Mode::Normal), QIcon::Mode::Normal, QIcon::On);
icon.addPixmap(on.pixmap(size, QIcon::Mode::Selected), QIcon::Mode::Selected, QIcon::On);
icon.addPixmap(on.pixmap(size, QIcon::Mode::Disabled), QIcon::Mode::Disabled, QIcon::On);
QIcon off = Icons::icon(name + "-off", recolor);
icon.addPixmap(off.pixmap(size, QIcon::Mode::Normal), QIcon::Mode::Normal, QIcon::Off);
icon.addPixmap(off.pixmap(size, QIcon::Mode::Selected), QIcon::Mode::Selected, QIcon::Off);
icon.addPixmap(off.pixmap(size, QIcon::Mode::Disabled), QIcon::Mode::Disabled, QIcon::Off);
m_iconCache.insert(cacheName, icon);
return icon;
return icon(name + (on ? "-on" : "-off"), recolor);
}
Icons* Icons::instance()