|
@@ -125,13 +125,13 @@ EditorPropertyDictionaryObject::EditorPropertyDictionaryObject() {
|
|
|
|
|
|
///////////////////// ARRAY ///////////////////////////
|
|
///////////////////// 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")) {
|
|
if (p_prop.begins_with("indices")) {
|
|
int idx = p_prop.get_slice("/", 1).to_int();
|
|
int idx = p_prop.get_slice("/", 1).to_int();
|
|
Variant array = object->get_array();
|
|
Variant array = object->get_array();
|
|
array.set(idx, p_value);
|
|
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) {
|
|
if (array.get_type() == Variant::ARRAY) {
|
|
array = array.call("duplicate"); //dupe, so undo/redo works better
|
|
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("_edit_pressed", &EditorPropertyArray::_edit_pressed);
|
|
ClassDB::bind_method("_page_changed", &EditorPropertyArray::_page_changed);
|
|
ClassDB::bind_method("_page_changed", &EditorPropertyArray::_page_changed);
|
|
ClassDB::bind_method("_length_changed", &EditorPropertyArray::_length_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", &EditorPropertyArray::_change_type);
|
|
ClassDB::bind_method("_change_type_menu", &EditorPropertyArray::_change_type_menu);
|
|
ClassDB::bind_method("_change_type_menu", &EditorPropertyArray::_change_type_menu);
|
|
}
|
|
}
|
|
@@ -579,7 +579,7 @@ EditorPropertyArray::EditorPropertyArray() {
|
|
|
|
|
|
///////////////////// DICTIONARY ///////////////////////////
|
|
///////////////////// 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") {
|
|
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);
|
|
Variant key = dict.get_key_at_index(idx);
|
|
dict[key] = p_value;
|
|
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
|
|
dict = dict.duplicate(); //dupe, so undo/redo works better
|
|
object->set_dict(dict);
|
|
object->set_dict(dict);
|
|
@@ -1006,7 +1006,7 @@ void EditorPropertyDictionary::_page_changed(double p_page) {
|
|
void EditorPropertyDictionary::_bind_methods() {
|
|
void EditorPropertyDictionary::_bind_methods() {
|
|
ClassDB::bind_method("_edit_pressed", &EditorPropertyDictionary::_edit_pressed);
|
|
ClassDB::bind_method("_edit_pressed", &EditorPropertyDictionary::_edit_pressed);
|
|
ClassDB::bind_method("_page_changed", &EditorPropertyDictionary::_page_changed);
|
|
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", &EditorPropertyDictionary::_change_type);
|
|
ClassDB::bind_method("_change_type_menu", &EditorPropertyDictionary::_change_type_menu);
|
|
ClassDB::bind_method("_change_type_menu", &EditorPropertyDictionary::_change_type_menu);
|
|
ClassDB::bind_method("_add_key_value", &EditorPropertyDictionary::_add_key_value);
|
|
ClassDB::bind_method("_add_key_value", &EditorPropertyDictionary::_add_key_value);
|