Allow signal connecting even if script is invalid (only when compiled with tools), fixes #17070
This commit is contained in:
parent
616b91b498
commit
3a93499f89
11 changed files with 33 additions and 4 deletions
|
|
@ -1443,8 +1443,20 @@ Error Object::connect(const StringName &p_signal, Object *p_to_object, const Str
|
|||
if (!s) {
|
||||
bool signal_is_valid = ClassDB::has_signal(get_class_name(), p_signal);
|
||||
//check in script
|
||||
if (!signal_is_valid && !script.is_null() && Ref<Script>(script)->has_script_signal(p_signal))
|
||||
signal_is_valid = true;
|
||||
if (!signal_is_valid && !script.is_null()) {
|
||||
|
||||
if (Ref<Script>(script)->has_script_signal(p_signal)) {
|
||||
signal_is_valid = true;
|
||||
}
|
||||
#ifdef TOOLS_ENABLED
|
||||
else {
|
||||
//allow connecting signals anyway if script is invalid, see issue #17070
|
||||
if (!Ref<Script>(script)->is_valid()) {
|
||||
signal_is_valid = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!signal_is_valid) {
|
||||
ERR_EXPLAIN("In Object of type '" + String(get_class()) + "': Attempt to connect nonexistent signal '" + p_signal + "' to method '" + p_to_object->get_class() + "." + p_to_method + "'");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue