MCPcopy Create free account
hub / github.com/BehaviorTree/Groot / lockEditing

Method lockEditing

bt_editor/graphic_container.cpp:72–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72void GraphicContainer::lockEditing(bool locked)
73{
74 std::vector<QtNodes::Node*> subtrees_expanded;
75 for (auto& nodes_it: _scene->nodes() )
76 {
77
78 QtNodes::Node* node = nodes_it.second.get();
79 auto bt_model = dynamic_cast<BehaviorTreeDataModel*>( node->nodeDataModel() );
80
81 if(bt_model->registrationName() == "Root")
82 {
83 bt_model->lock( locked );
84 node->nodeGraphicsObject().setFlag(QGraphicsItem::ItemIsMovable, false);
85 node->nodeGraphicsObject().setFlag(QGraphicsItem::ItemIsFocusable, true);
86 node->nodeGraphicsObject().setFlag(QGraphicsItem::ItemIsSelectable, false);
87 continue;
88 }
89
90 bt_model->lock(locked);
91 node->nodeGraphicsObject().lock(locked);
92
93 if( auto subtree = dynamic_cast<SubtreeNodeModel*>( node->nodeDataModel() ) )
94 {
95 if( subtree->expanded()) subtrees_expanded.push_back(node);
96 }
97
98 if( !locked )
99 {
100 node->nodeGraphicsObject().setGeometryChanged();
101 QtNodes::NodeStyle style;
102 node->nodeDataModel()->setNodeStyle( style );
103 node->nodeGraphicsObject().update();
104 }
105 }
106
107 for (auto& subtree: subtrees_expanded )
108 {
109 lockSubtreeEditing(*subtree, true, !locked);
110 }
111
112 for (auto& conn_it: _scene->connections() )
113 {
114 QtNodes::Connection* conn = conn_it.second.get();
115 conn->connectionGraphicsObject().lock( locked );
116 }
117}
118
119void GraphicContainer::lockSubtreeEditing(Node &root_node, bool locked, bool change_style)
120{

Callers

nothing calls this directly

Calls 2

expandedMethod · 0.80
lockMethod · 0.45

Tested by

no test coverage detected