Browse Source

Merge pull request #21161 from Noshyaar/inspector-text

Fix args count mismatch in property_changed signal
Rémi Verschelde 7 years ago
parent
commit
8c70344596
2 changed files with 8 additions and 8 deletions
  1. 6 6
      editor/editor_properties_array_dict.cpp
  2. 2 2
      editor/editor_properties_array_dict.h

+ 6 - 6
editor/editor_properties_array_dict.cpp

@@ -125,13 +125,13 @@ EditorPropertyDictionaryObject::EditorPropertyDictionaryObject() {
 
 ///////////////////// ARRAY ///////////////////////////
 
-void EditorPropertyArray::_property_changed(const String &p_prop, Variant p_value) {
+void EditorPropertyArray::_property_changed(const String &p_prop, Variant p_value, bool changing) {
 
 	if (p_prop.begins_with("indices")) {
 		int idx = p_prop.get_slice("/", 1).to_int();
 		Variant array = object->get_array();
 		array.set(idx, p_value);
-		emit_signal("property_changed", get_edited_property(), array);
+		emit_signal("property_changed", get_edited_property(), array, true);
 
 		if (array.get_type() == Variant::ARRAY) {
 			array = array.call("duplicate"); //dupe, so undo/redo works better
@@ -544,7 +544,7 @@ void EditorPropertyArray::_bind_methods() {
 	ClassDB::bind_method("_edit_pressed", &EditorPropertyArray::_edit_pressed);
 	ClassDB::bind_method("_page_changed", &EditorPropertyArray::_page_changed);
 	ClassDB::bind_method("_length_changed", &EditorPropertyArray::_length_changed);
-	ClassDB::bind_method("_property_changed", &EditorPropertyArray::_property_changed);
+	ClassDB::bind_method("_property_changed", &EditorPropertyArray::_property_changed, DEFVAL(false));
 	ClassDB::bind_method("_change_type", &EditorPropertyArray::_change_type);
 	ClassDB::bind_method("_change_type_menu", &EditorPropertyArray::_change_type_menu);
 }
@@ -579,7 +579,7 @@ EditorPropertyArray::EditorPropertyArray() {
 
 ///////////////////// DICTIONARY ///////////////////////////
 
-void EditorPropertyDictionary::_property_changed(const String &p_prop, Variant p_value) {
+void EditorPropertyDictionary::_property_changed(const String &p_prop, Variant p_value, bool changing) {
 
 	if (p_prop == "new_item_key") {
 
@@ -593,7 +593,7 @@ void EditorPropertyDictionary::_property_changed(const String &p_prop, Variant p
 		Variant key = dict.get_key_at_index(idx);
 		dict[key] = p_value;
 
-		emit_signal("property_changed", get_edited_property(), dict);
+		emit_signal("property_changed", get_edited_property(), dict, true);
 
 		dict = dict.duplicate(); //dupe, so undo/redo works better
 		object->set_dict(dict);
@@ -1006,7 +1006,7 @@ void EditorPropertyDictionary::_page_changed(double p_page) {
 void EditorPropertyDictionary::_bind_methods() {
 	ClassDB::bind_method("_edit_pressed", &EditorPropertyDictionary::_edit_pressed);
 	ClassDB::bind_method("_page_changed", &EditorPropertyDictionary::_page_changed);
-	ClassDB::bind_method("_property_changed", &EditorPropertyDictionary::_property_changed);
+	ClassDB::bind_method("_property_changed", &EditorPropertyDictionary::_property_changed, DEFVAL(false));
 	ClassDB::bind_method("_change_type", &EditorPropertyDictionary::_change_type);
 	ClassDB::bind_method("_change_type_menu", &EditorPropertyDictionary::_change_type_menu);
 	ClassDB::bind_method("_add_key_value", &EditorPropertyDictionary::_add_key_value);

+ 2 - 2
editor/editor_properties_array_dict.h

@@ -67,7 +67,7 @@ class EditorPropertyArray : public EditorProperty {
 	void _page_changed(double p_page);
 	void _length_changed(double p_page);
 	void _edit_pressed();
-	void _property_changed(const String &p_prop, Variant p_value);
+	void _property_changed(const String &p_prop, Variant p_value, bool changing = false);
 	void _change_type(Object *p_button, int p_index);
 	void _change_type_menu(int p_index);
 
@@ -99,7 +99,7 @@ class EditorPropertyDictionary : public EditorProperty {
 
 	void _page_changed(double p_page);
 	void _edit_pressed();
-	void _property_changed(const String &p_prop, Variant p_value);
+	void _property_changed(const String &p_prop, Variant p_value, bool changing = false);
 	void _change_type(Object *p_button, int p_index);
 	void _change_type_menu(int p_index);