summaryrefslogtreecommitdiff
path: root/src/plugins/genericprojectmanager
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2011-04-12 08:29:42 +0200
committerhjk <qtc-committer@nokia.com>2011-04-12 12:18:11 +0200
commit4a338a51295784382bcef9518a8f20235758e60f (patch)
tree7ccbcee2e874e32be7cba5f2b76bdc61edad1e40 /src/plugins/genericprojectmanager
parent3df1d524b794429cad1aa99e208f75e4cca2623c (diff)
downloadqt-creator-4a338a51295784382bcef9518a8f20235758e60f.tar.gz
genericproject: pass an essentially temporary variable as parameter
Diffstat (limited to 'src/plugins/genericprojectmanager')
-rw-r--r--src/plugins/genericprojectmanager/genericprojectnodes.cpp25
-rw-r--r--src/plugins/genericprojectmanager/genericprojectnodes.h6
2 files changed, 13 insertions, 18 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;
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.h b/src/plugins/genericprojectmanager/genericprojectnodes.h
index 3cbc8a5729..e769bae6a5 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<QString, FolderNode *> FolderByName;
+ FolderNode *findOrCreateFolderByName(FolderByName *folderByName,
+ const QStringList &components, int end);
private:
GenericProject *m_project;
Core::IFile *m_projectFile;
- QHash<QString, FolderNode *> m_folderByName;
};
} // namespace Internal