Browse Source

Revise icon cache look up

Find in `m_iconCache` first because it is cheaper than calling
`QIcon::fromTheme()`.
adaptive-webui-19844
Chocobo1 2 years ago
parent
commit
c2c17fd053
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 12
      src/gui/uithememanager.cpp

12
src/gui/uithememanager.cpp

@ -201,7 +201,13 @@ void UIThemeManager::applyStyleSheet() const @@ -201,7 +201,13 @@ void UIThemeManager::applyStyleSheet() const
QIcon UIThemeManager::getIcon(const QString &iconId, const QString &fallback) const
{
// Cache to avoid rescaling svg icons
const auto iter = m_iconCache.find(iconId);
if (iter != m_iconCache.end())
return *iter;
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS))
// Don't cache system icons because users might change them at run time
if (m_useSystemTheme)
{
QIcon icon = QIcon::fromTheme(iconId);
@ -211,12 +217,6 @@ QIcon UIThemeManager::getIcon(const QString &iconId, const QString &fallback) co @@ -211,12 +217,6 @@ QIcon UIThemeManager::getIcon(const QString &iconId, const QString &fallback) co
}
#endif
// Cache to avoid rescaling svg icons
// And don't cache system icons because users might change them at run time
const auto iter = m_iconCache.find(iconId);
if (iter != m_iconCache.end())
return *iter;
const QIcon icon {getIconPathFromResources(iconId, fallback).data()};
m_iconCache[iconId] = icon;
return icon;

Loading…
Cancel
Save