summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/fileiconprovider.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-11-19 12:49:13 +0100
committerEike Ziller <eike.ziller@digia.com>2013-11-19 13:37:32 +0100
commita60960a88fdcd9a156e2b040963cc0cee842bf1e (patch)
treefbafeb51fc27c07b02c0a4f9054a9f50699ca9b5 /src/plugins/coreplugin/fileiconprovider.cpp
parentd9e6854a0879ad46cfd1a110b63be2629d1caf44 (diff)
downloadqt-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.cpp22
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.