summaryrefslogtreecommitdiff
path: root/src/plugins/genericprojectmanager/genericprojectnodes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/genericprojectmanager/genericprojectnodes.cpp')
-rw-r--r--src/plugins/genericprojectmanager/genericprojectnodes.cpp25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.cpp b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
index bbc1f3b8cc..41afe193e0 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<FileNode *> 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<FolderNode*>() << 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;