mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-26 19:26:59 +03:00
Make the icon cache a class variable
This commit is contained in:
parent
35a3265657
commit
00eb61543d
2 changed files with 9 additions and 7 deletions
|
@ -31,7 +31,6 @@
|
|||
|
||||
#include <QApplication>
|
||||
#include <QFile>
|
||||
#include <QIcon>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QPalette>
|
||||
|
@ -127,14 +126,15 @@ QIcon UIThemeManager::getIcon(const QString &iconId, const QString &fallback) co
|
|||
return icon;
|
||||
}
|
||||
#endif
|
||||
// cache to avoid rescaling svg icons
|
||||
static QHash<QString, QIcon> iconCache;
|
||||
const auto iter = iconCache.find(iconId);
|
||||
if (iter != iconCache.end())
|
||||
|
||||
// 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)};
|
||||
iconCache[iconId] = icon;
|
||||
m_iconCache[iconId] = icon;
|
||||
return icon;
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ QString UIThemeManager::getIconPath(const QString &iconId) const
|
|||
{
|
||||
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS))
|
||||
if (m_useSystemTheme) {
|
||||
QString path = Utils::Fs::tempPath() + iconId + ".png";
|
||||
QString path = Utils::Fs::tempPath() + iconId + QLatin1String(".png");
|
||||
if (!QFile::exists(path)) {
|
||||
const QIcon icon = QIcon::fromTheme(iconId);
|
||||
if (!icon.isNull())
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include <QColor>
|
||||
#include <QHash>
|
||||
#include <QIcon>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
|
@ -60,6 +61,7 @@ private:
|
|||
|
||||
static UIThemeManager *m_instance;
|
||||
QHash<QString, QColor> m_colors;
|
||||
mutable QHash<QString, QIcon> m_iconCache;
|
||||
const bool m_useCustomTheme;
|
||||
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS))
|
||||
bool m_useSystemTheme;
|
||||
|
|
Loading…
Reference in a new issue