From 60bf641041e63f8bae9d56a3b39b580aec3cd04f Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Wed, 7 Jul 2010 12:16:09 +0200 Subject: [PATCH] Projectexplorer: Delay querying for folder icon. As a custom icon is set in most cases anyway. Reviewed-by: Robert Loehning <robert.loehning@nokia.com> --- src/plugins/projectexplorer/projectnodes.cpp | 6 ++++-- src/plugins/projectexplorer/projectnodes.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index d9cd9b11a1a..ba171e314b4 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -154,8 +154,7 @@ bool FileNode::isGenerated() const */ FolderNode::FolderNode(const QString &folderPath) : Node(FolderNodeType, folderPath), - m_displayName(QDir::toNativeSeparators(folderPath)), - m_icon(Core::FileIconProvider::instance()->icon(QFileIconProvider::Folder)) + m_displayName(QDir::toNativeSeparators(folderPath)) { } @@ -182,6 +181,9 @@ QString FolderNode::displayName() const */ QIcon FolderNode::icon() const { + // Instantiating the Icon provider is expensive. + if (m_icon.isNull()) + m_icon = Core::FileIconProvider::instance()->icon(QFileIconProvider::Folder); return m_icon; } diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index 64d49e4b39b..010c5219a0d 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -147,7 +147,7 @@ private: // managed by ProjectNode friend class ProjectNode; QString m_displayName; - QIcon m_icon; + mutable QIcon m_icon; }; class PROJECTEXPLORER_EXPORT ProjectNode : public FolderNode -- GitLab