Browse Source

Improve signal already connected error message

The signal already connected message is improved to provide the names of the objects involved.
lawnjelly 2 years ago
parent
commit
17f42e8e66
2 changed files with 5 additions and 1 deletions
  1. 3 1
      core/object.cpp
  2. 2 0
      scene/main/node.cpp

+ 3 - 1
core/object.cpp

@@ -1477,7 +1477,9 @@ Error Object::connect(const StringName &p_signal, Object *p_to_object, const Str
 			s->slot_map[target].reference_count++;
 			return OK;
 		} else {
-			ERR_FAIL_V_MSG(ERR_INVALID_PARAMETER, "Signal '" + p_signal + "' is already connected to given method '" + p_to_method + "' in that object.");
+			ERR_FAIL_V_MSG(ERR_INVALID_PARAMETER,
+					vformat("Signal \"%s\" from \"%s\" is already connected to given method \"%s\" in \"%s\".",
+							p_signal, to_string(), p_to_method, p_to_object->to_string()));
 		}
 	}
 

+ 2 - 0
scene/main/node.cpp

@@ -2126,6 +2126,8 @@ void Node::get_storable_properties(Set<StringName> &r_storable_properties) const
 }
 
 String Node::to_string() {
+	// This code doesn't print the script's name, it calls to_string() if you override it in a Node's script,
+	// which you only do if you specifically want to customize how the node should be represented by print().
 	if (get_script_instance()) {
 		bool valid;
 		String ret = get_script_instance()->to_string(&valid);