From 4a338a51295784382bcef9518a8f20235758e60f Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 12 Apr 2011 08:29:42 +0200 Subject: [PATCH] genericproject: pass an essentially temporary variable as parameter --- .../genericprojectnodes.cpp | 25 ++++++++----------- .../genericprojectnodes.h | 6 ++--- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.cpp b/src/plugins/genericprojectmanager/genericprojectnodes.cpp index bbc1f3b8cc6..41afe193e04 100644 --- a/src/plugins/genericprojectmanager/genericprojectnodes.cpp +++ b/src/plugins/genericprojectmanager/genericprojectnodes.cpp @@ -116,8 +116,10 @@ void GenericProjectNode::refresh() filesInPath[relativeFilePath].append(absoluteFileName); } + FolderByName folderByName; foreach (const QString &filePath, filePaths) { - FolderNode *folder = findOrCreateFolderByName(filePath); + QStringList components = filePath.split(QLatin1Char('/')); + FolderNode *folder = findOrCreateFolderByName(&folderByName, components, components.size()); QList fileNodes; foreach (const QString &file, filesInPath.value(filePath)) { @@ -128,13 +130,12 @@ void GenericProjectNode::refresh() addFileNodes(fileNodes, folder); } - - m_folderByName.clear(); } -ProjectExplorer::FolderNode *GenericProjectNode::findOrCreateFolderByName(const QStringList &components, int end) +ProjectExplorer::FolderNode *GenericProjectNode::findOrCreateFolderByName + (FolderByName *folderByName, const QStringList &components, int end) { - if (! end) + if (!end) return 0; QString folderName; @@ -148,28 +149,22 @@ ProjectExplorer::FolderNode *GenericProjectNode::findOrCreateFolderByName(const if (component.isEmpty()) return this; - else if (FolderNode *folder = m_folderByName.value(folderName)) + else if (FolderNode *folder = folderByName->value(folderName)) return folder; const QString baseDir = QFileInfo(path()).path(); FolderNode *folder = new FolderNode(baseDir + QLatin1Char('/') + folderName); folder->setDisplayName(component); - m_folderByName.insert(folderName, folder); + folderByName->insert(folderName, folder); - FolderNode *parent = findOrCreateFolderByName(components, end - 1); - if (! parent) + FolderNode *parent = findOrCreateFolderByName(folderByName, components, end - 1); + if (!parent) parent = this; addFolderNodes(QList() << folder, parent); return folder; } -ProjectExplorer::FolderNode *GenericProjectNode::findOrCreateFolderByName(const QString &filePath) -{ - QStringList components = filePath.split(QLatin1Char('/')); - return findOrCreateFolderByName(components, components.length()); -} - bool GenericProjectNode::hasBuildTargets() const { return true; diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.h b/src/plugins/genericprojectmanager/genericprojectnodes.h index 3cbc8a5729e..e769bae6a51 100644 --- a/src/plugins/genericprojectmanager/genericprojectnodes.h +++ b/src/plugins/genericprojectmanager/genericprojectnodes.h @@ -84,13 +84,13 @@ public: void refresh(); private: - FolderNode *findOrCreateFolderByName(const QString &filePath); - FolderNode *findOrCreateFolderByName(const QStringList &components, int end); + typedef QHash FolderByName; + FolderNode *findOrCreateFolderByName(FolderByName *folderByName, + const QStringList &components, int end); private: GenericProject *m_project; Core::IFile *m_projectFile; - QHash m_folderByName; }; } // namespace Internal