diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-14 10:19:47 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-14 10:19:47 +0200 |
commit | 7502c808fa24b22e216051f8399abba2992fe77f (patch) | |
tree | d12656e4d8f3777fe704eb62eff12bfcd40ca436 /scene | |
parent | 95af765f533e7f0f9f997ee1ce4ba70680441b0b (diff) | |
parent | 6a77563b25bd8d71b4b091ba048905e190ee3955 (diff) |
Merge pull request #66665 from Mickeon/editor-do-not-edit-inherited-signals
Do not allow editing Scene-inherited signal connections
Diffstat (limited to 'scene')
-rw-r--r-- | scene/resources/packed_scene.cpp | 6 | ||||
-rw-r--r-- | scene/resources/packed_scene.h | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 1f71d583b1..1c99fa5554 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -1546,7 +1546,7 @@ Array SceneState::get_connection_binds(int p_idx) const { return binds; } -bool SceneState::has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method) { +bool SceneState::has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method, bool p_no_inheritance) { // this method cannot be const because of this Ref<SceneState> ss = this; @@ -1578,6 +1578,10 @@ bool SceneState::has_connection(const NodePath &p_node_from, const StringName &p } } + if (p_no_inheritance) { + break; + } + ss = ss->get_base_scene_state(); } while (ss.is_valid()); diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h index 8e1a1d29b6..c6f82ddd5e 100644 --- a/scene/resources/packed_scene.h +++ b/scene/resources/packed_scene.h @@ -176,7 +176,7 @@ public: int get_connection_unbinds(int p_idx) const; Array get_connection_binds(int p_idx) const; - bool has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method); + bool has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method, bool p_no_inheritance = false); Vector<NodePath> get_editable_instances() const; |