aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-02-15 12:47:16 +0100
committerhjk <hjk@qt.io>2017-02-15 12:13:46 +0000
commit532204129b18616558fb7919de1fd6c916c2c069 (patch)
tree01ddba94219c42bf4eea03ae99b344f66b383444
parent1d686f9aa4dd11c45195e5f8c92fe5dc083d9b4f (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.cpp43
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;