forked from qt-creator/qt-creator
Qbs: Improve performance even further...
setupFolder is called recursively... Change-Id: Ief1d1d45294a3821f5496d832a2130a8ff779f44 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
0642c10512
commit
c632ce44f7
@@ -453,11 +453,17 @@ void QbsGroupNode::setupFiles(ProjectExplorer::FolderNode *root, const qbs::Grou
|
|||||||
FileTreeNode::reorder(&tree, productPath);
|
FileTreeNode::reorder(&tree, productPath);
|
||||||
FileTreeNode::simplify(&tree);
|
FileTreeNode::simplify(&tree);
|
||||||
|
|
||||||
setupFolder(root, group, &tree, productPath, updateExisting);
|
QHash<QString, ProjectExplorer::FileType> fileTypeHash;
|
||||||
|
foreach (const qbs::SourceArtifact &sa, group.allSourceArtifacts())
|
||||||
|
fileTypeHash[sa.filePath()] = fileType(sa);
|
||||||
|
|
||||||
|
setupFolder(root, fileTypeHash, &tree, productPath, updateExisting);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::GroupData &group,
|
void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
|
||||||
const FileTreeNode *fileTree, const QString &baseDir,
|
const QHash<QString, ProjectExplorer::FileType> &fileTypeHash,
|
||||||
|
const FileTreeNode *fileTree,
|
||||||
|
const QString &baseDir,
|
||||||
bool updateExisting)
|
bool updateExisting)
|
||||||
{
|
{
|
||||||
// We only need to care about FileNodes and FolderNodes here. Everything else is
|
// We only need to care about FileNodes and FolderNodes here. Everything else is
|
||||||
@@ -479,10 +485,6 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro
|
|||||||
foldersToRemove.append(fn);
|
foldersToRemove.append(fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
QHash<QString, ProjectExplorer::FileType> fileTypeHash;
|
|
||||||
foreach (const qbs::SourceArtifact &sa, group.allSourceArtifacts())
|
|
||||||
fileTypeHash[sa.filePath()] = fileType(sa);
|
|
||||||
|
|
||||||
foreach (FileTreeNode *c, fileTree->children) {
|
foreach (FileTreeNode *c, fileTree->children) {
|
||||||
Utils::FileName path = Utils::FileName::fromString(c->path());
|
Utils::FileName path = Utils::FileName::fromString(c->path());
|
||||||
const ProjectExplorer::FileType newFileType =
|
const ProjectExplorer::FileType newFileType =
|
||||||
@@ -537,7 +539,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro
|
|||||||
if (isQrcFile)
|
if (isQrcFile)
|
||||||
static_cast<ResourceTopLevelNode *>(fn)->update();
|
static_cast<ResourceTopLevelNode *>(fn)->update();
|
||||||
else
|
else
|
||||||
setupFolder(fn, group, c, c->path(), updateExisting);
|
setupFolder(fn, fileTypeHash, c, c->path(), updateExisting);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,8 +106,10 @@ public:
|
|||||||
const QString &productPath, bool updateExisting);
|
const QString &productPath, bool updateExisting);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void setupFolder(ProjectExplorer::FolderNode *folder, const qbs::GroupData &group,
|
static void setupFolder(ProjectExplorer::FolderNode *folder,
|
||||||
const FileTreeNode *subFileTree, const QString &baseDir, bool updateExisting);
|
const QHash<QString, ProjectExplorer::FileType> &fileTypeHash,
|
||||||
|
const FileTreeNode *subFileTree, const QString &baseDir,
|
||||||
|
bool updateExisting);
|
||||||
static ProjectExplorer::FileType fileType(const qbs::SourceArtifact &artifact);
|
static ProjectExplorer::FileType fileType(const qbs::SourceArtifact &artifact);
|
||||||
|
|
||||||
qbs::GroupData m_qbsGroupData;
|
qbs::GroupData m_qbsGroupData;
|
||||||
|
|||||||
Reference in New Issue
Block a user