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)
|
bool FolderNode::replaceSubtree(Node *oldNode, Node *newNode)
|
||||||
{
|
{
|
||||||
std::unique_ptr<Node> nn(newNode);
|
std::unique_ptr<Node> nn(newNode);
|
||||||
|
|
||||||
if (!oldNode) {
|
if (!oldNode) {
|
||||||
addNode(nn.release()); // Happens e.g. when a project is registered
|
addNode(nn.release()); // Happens e.g. when a project is registered
|
||||||
} else {
|
} else {
|
||||||
@@ -506,7 +505,6 @@ bool FolderNode::replaceSubtree(Node *oldNode, Node *newNode)
|
|||||||
}
|
}
|
||||||
delete oldNode;
|
delete oldNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectTree::emitSubtreeChanged(this);
|
ProjectTree::emitSubtreeChanged(this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
#include <projectexplorer/projectnodes.h>
|
#include <projectexplorer/projectnodes.h>
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
|
||||||
|
#include <utils/algorithm.h>
|
||||||
#include <utils/parameteraction.h>
|
#include <utils/parameteraction.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
@@ -210,6 +211,19 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err
|
|||||||
|
|
||||||
void ResourceEditorPlugin::extensionsInitialized()
|
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()
|
void ResourceEditorPlugin::onUndo()
|
||||||
|
|||||||
Reference in New Issue
Block a user