diff options
author | Eike Ziller <eike.ziller@digia.com> | 2013-11-19 12:49:13 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2013-11-19 13:37:32 +0100 |
commit | a60960a88fdcd9a156e2b040963cc0cee842bf1e (patch) | |
tree | fbafeb51fc27c07b02c0a4f9054a9f50699ca9b5 /src/plugins/coreplugin/fileiconprovider.cpp | |
parent | d9e6854a0879ad46cfd1a110b63be2629d1caf44 (diff) | |
download | qt-creator-a60960a88fdcd9a156e2b040963cc0cee842bf1e.tar.gz |
FileIconProvider: Use hash for cache, instead of list.
Change-Id: I5d633ca2d21b6352c59cdeb7cd85267ced1d2170
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins/coreplugin/fileiconprovider.cpp')
-rw-r--r-- | src/plugins/coreplugin/fileiconprovider.cpp | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/plugins/coreplugin/fileiconprovider.cpp b/src/plugins/coreplugin/fileiconprovider.cpp index b136f8287c..6bba67ba06 100644 --- a/src/plugins/coreplugin/fileiconprovider.cpp +++ b/src/plugins/coreplugin/fileiconprovider.cpp @@ -37,7 +37,7 @@ #include <QStyle> #include <QPainter> #include <QFileInfo> -#include <QPair> +#include <QHash> #include <QDebug> #include <QFileIconProvider> @@ -68,9 +68,6 @@ namespace FileIconProvider { enum { debug = 0 }; -typedef QPair<QString, QIcon> StringIconPair; -typedef QList<StringIconPair> StringIconPairList; - class FileIconProviderImplementation : public QFileIconProvider { public: @@ -89,15 +86,8 @@ public: QTC_ASSERT(!icon.isNull() && !suffix.isEmpty(), return); const QPixmap fileIconPixmap = FileIconProvider::overlayIcon(QStyle::SP_FileIcon, icon, QSize(16, 16)); - // replace old icon, if it exists - for (int i = 0, n = m_cache.size(); i != n; ++i) { - if (m_cache.at(i).first == suffix) { - m_cache[i].second = fileIconPixmap; - return; - } - } - m_cache.append(StringIconPair(suffix, fileIconPixmap)); + m_cache.insert(suffix, fileIconPixmap); } void registerIconOverlayForMimeType(const QIcon &icon, const MimeType &mimeType) @@ -107,7 +97,7 @@ public: } // Mapping of file suffix to icon. - StringIconPairList m_cache; + QHash<QString, QIcon> m_cache; QIcon m_unknownFileIcon; }; @@ -130,10 +120,8 @@ QIcon FileIconProviderImplementation::icon(const QFileInfo &fileInfo) const // Check for cached overlay icons by file suffix. if (!m_cache.isEmpty() && !fileInfo.isDir()) { const QString suffix = fileInfo.suffix(); - if (!suffix.isEmpty()) { - for (int i = 0, n = m_cache.size(); i != n; ++i) - if (m_cache.at(i).first == suffix) - return m_cache[i].second; + if (!suffix.isEmpty() && m_cache.contains(suffix)) { + return m_cache.value(suffix); } } // Get icon from OS. |