diff options
author | hjk <hjk@qt.io> | 2017-02-15 12:47:16 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2017-02-15 12:13:46 +0000 |
commit | 532204129b18616558fb7919de1fd6c916c2c069 (patch) | |
tree | 01ddba94219c42bf4eea03ae99b344f66b383444 | |
parent | 1d686f9aa4dd11c45195e5f8c92fe5dc083d9b4f (diff) |
ResourceHandler: Replace traditional visitor by lambda
Less code, closer to the place where it is used, and
avoiding the need to have the temporary fileNode lists.
Change-Id: I47b831aef7583b73a69276da4a301d812de75c69
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r-- | src/plugins/designer/resourcehandler.cpp | 43 |
1 files changed, 8 insertions, 35 deletions
diff --git a/src/plugins/designer/resourcehandler.cpp b/src/plugins/designer/resourcehandler.cpp index fbcad4d346..8a3f905331 100644 --- a/src/plugins/designer/resourcehandler.cpp +++ b/src/plugins/designer/resourcehandler.cpp @@ -42,38 +42,6 @@ using namespace ProjectExplorer; namespace Designer { namespace Internal { -// Visit project nodes and collect qrc-files. -class QrcFilesVisitor : public NodesVisitor -{ -public: - QStringList qrcFiles() const; - - void visitProjectNode(ProjectNode *node); - void visitFolderNode(FolderNode *node); -private: - QStringList m_qrcFiles; -}; - -QStringList QrcFilesVisitor::qrcFiles() const -{ - return m_qrcFiles; -} - -void QrcFilesVisitor::visitProjectNode(ProjectNode *projectNode) -{ - visitFolderNode(projectNode); -} - -void QrcFilesVisitor::visitFolderNode(FolderNode *folderNode) -{ - foreach (const FileNode *fileNode, folderNode->fileNodes()) { - if (fileNode->fileType() == FileType::Resource) - m_qrcFiles.append(fileNode->filePath().toString()); - } - if (dynamic_cast<ResourceEditor::ResourceTopLevelNode *>(folderNode)) - m_qrcFiles.append(folderNode->filePath().toString()); -} - // ------------ ResourceHandler ResourceHandler::ResourceHandler(QDesignerFormWindowInterface *fw) : QObject(fw), @@ -130,9 +98,14 @@ void ResourceHandler::updateResourcesHelper(bool updateProjectResources) if (project) { // Collect project resource files. ProjectNode *root = project->rootProjectNode(); - QrcFilesVisitor qrcVisitor; - root->accept(&qrcVisitor); - QStringList projectQrcFiles = qrcVisitor.qrcFiles(); + QStringList projectQrcFiles; + root->forEachNode([&](FileNode *node) { + if (node->fileType() == FileType::Resource) + projectQrcFiles.append(node->filePath().toString()); + }, [&](FolderNode *node) { + if (dynamic_cast<ResourceEditor::ResourceTopLevelNode *>(node)) + projectQrcFiles.append(node->filePath().toString()); + }); // Check if the user has chosen to update the lacking resource inside designer if (dirty && updateProjectResources) { QStringList qrcPathsToBeAdded; |