diff options
author | hjk <qtc-committer@nokia.com> | 2011-04-12 08:29:42 +0200 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2011-04-12 12:18:11 +0200 |
commit | 4a338a51295784382bcef9518a8f20235758e60f (patch) | |
tree | 7ccbcee2e874e32be7cba5f2b76bdc61edad1e40 /src/plugins/genericprojectmanager | |
parent | 3df1d524b794429cad1aa99e208f75e4cca2623c (diff) | |
download | qt-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.cpp | 25 | ||||
-rw-r--r-- | src/plugins/genericprojectmanager/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 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 |