From 3c85c0057740db9c1d37b800726741cb0a77b63e Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 10 Mar 2017 10:49:06 +0100 Subject: [PATCH] Resources: Register as tree manager Change-Id: I400c1d77b23e465de7acbc517530f6c080549c5e Reviewed-by: hjk --- src/plugins/projectexplorer/projectnodes.cpp | 2 -- .../resourceeditor/resourceeditorplugin.cpp | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 6767b3b1f00..29db6309189 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -491,7 +491,6 @@ bool FolderNode::isAncesterOf(Node *n) bool FolderNode::replaceSubtree(Node *oldNode, Node *newNode) { std::unique_ptr nn(newNode); - if (!oldNode) { addNode(nn.release()); // Happens e.g. when a project is registered } else { @@ -506,7 +505,6 @@ bool FolderNode::replaceSubtree(Node *oldNode, Node *newNode) } delete oldNode; } - ProjectTree::emitSubtreeChanged(this); return true; } diff --git a/src/plugins/resourceeditor/resourceeditorplugin.cpp b/src/plugins/resourceeditor/resourceeditorplugin.cpp index 16a5a35a18e..0ef8e5cb508 100644 --- a/src/plugins/resourceeditor/resourceeditorplugin.cpp +++ b/src/plugins/resourceeditor/resourceeditorplugin.cpp @@ -44,6 +44,7 @@ #include #include +#include #include #include @@ -210,6 +211,19 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err void ResourceEditorPlugin::extensionsInitialized() { + ProjectTree::registerTreeManager([](FolderNode *folder) { + QList toReplace; + folder->forEachNode([&toReplace](FileNode *fn) { + if (fn->fileType() == FileType::Resource) + toReplace.append(fn); + }); + + for (FileNode *file : toReplace) { + FolderNode *const pn = file->parentFolderNode(); + const Utils::FileName path = file->filePath(); + pn->replaceSubtree(file, new ResourceTopLevelNode(path, QString(), pn)); + } + }); } void ResourceEditorPlugin::onUndo()