fix: root node id overriding
This commit is contained in:
parent
17e8d9bb1b
commit
91cb5ab7d8
@ -23,11 +23,12 @@ void UiDocument::rebuildIndices() {
|
||||
map["root"] = root;
|
||||
}
|
||||
|
||||
const UINodesMap& UiDocument::getMap() const {
|
||||
return map;
|
||||
void UiDocument::pushIndices(const std::shared_ptr<gui::UINode>& node) {
|
||||
gui::UINode::getIndices(node, map);
|
||||
map["root"] = root;
|
||||
}
|
||||
|
||||
UINodesMap& UiDocument::getMapWriteable() {
|
||||
const UINodesMap& UiDocument::getMap() const {
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
@ -36,10 +36,10 @@ public:
|
||||
);
|
||||
|
||||
void rebuildIndices();
|
||||
void pushIndices(const std::shared_ptr<gui::UINode>& node);
|
||||
|
||||
const std::string& getId() const;
|
||||
const UINodesMap& getMap() const;
|
||||
UINodesMap& getMapWriteable();
|
||||
std::shared_ptr<gui::UINode> getRoot() const;
|
||||
std::shared_ptr<gui::UINode> get(const std::string& id) const;
|
||||
const uidocscript& getScript() const;
|
||||
|
||||
@ -310,7 +310,7 @@ bool GUI::isFocusCaught() const {
|
||||
}
|
||||
|
||||
void GUI::add(std::shared_ptr<UINode> node) {
|
||||
UINode::getIndices(node, rootDocument->getMapWriteable());
|
||||
rootDocument->pushIndices(node);
|
||||
container->add(std::move(node));
|
||||
}
|
||||
|
||||
|
||||
@ -105,7 +105,7 @@ static int l_container_add(lua::State* L) {
|
||||
auto subnode = guiutil::create(
|
||||
engine->getGUI(), xmlsrc, std::move(env)
|
||||
);
|
||||
UINode::getIndices(subnode, docnode.document->getMapWriteable());
|
||||
docnode.document->pushIndices(subnode);
|
||||
node->add(std::move(subnode));
|
||||
} catch (const std::exception& err) {
|
||||
throw std::runtime_error("container:add(...): " + std::string(err.what()));
|
||||
@ -410,9 +410,7 @@ static const std::string& request_node_id(const DocumentNode& docnode) {
|
||||
reinterpret_cast<std::ptrdiff_t>(docnode.node.get()));
|
||||
}
|
||||
docnode.node->setId(std::move(id));
|
||||
UINode::getIndices(
|
||||
docnode.node, docnode.document->getMapWriteable()
|
||||
);
|
||||
docnode.document->pushIndices(docnode.node);
|
||||
return docnode.node->getId();
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user