forked from qt-creator/qt-creator
Resources: Register as tree manager
Change-Id: I400c1d77b23e465de7acbc517530f6c080549c5e Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -491,7 +491,6 @@ bool FolderNode::isAncesterOf(Node *n)
|
||||
bool FolderNode::replaceSubtree(Node *oldNode, Node *newNode)
|
||||
{
|
||||
std::unique_ptr<Node> 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;
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <projectexplorer/projectnodes.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/parameteraction.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
@@ -210,6 +211,19 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err
|
||||
|
||||
void ResourceEditorPlugin::extensionsInitialized()
|
||||
{
|
||||
ProjectTree::registerTreeManager([](FolderNode *folder) {
|
||||
QList<FileNode *> 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()
|
||||
|
||||
Reference in New Issue
Block a user