Просмотр исходного кода

Merge pull request #21701 from AlexHolly/fix-multiselect-proptery-change

Fix multiselect change property
Juan Linietsky 6 лет назад
Родитель
Сommit
580bebda52
4 измененных файлов с 45 добавлено и 45 удалено
  1. 3 3
      editor/editor_inspector.cpp
  2. 1 1
      editor/editor_inspector.h
  3. 32 32
      editor/editor_properties.cpp
  4. 9 9
      editor/editor_properties.h

+ 3 - 3
editor/editor_inspector.cpp

@@ -1965,14 +1965,14 @@ void EditorInspector::_edit_set(const String &p_name, const Variant &p_value, bo
 	}
 }
 
-void EditorInspector::_property_changed(const String &p_path, const Variant &p_value, bool changing) {
+void EditorInspector::_property_changed(const String &p_path, const Variant &p_value, const String &p_name, bool changing) {
 
 	// The "changing" variable must be true for properties that trigger events as typing occurs,
 	// like "text_changed" signal. eg: Text property of Label, Button, RichTextLabel, etc.
 	if (changing)
 		this->changing++;
 
-	_edit_set(p_path, p_value, false, "");
+	_edit_set(p_path, p_value, false, p_name);
 
 	if (changing)
 		this->changing--;
@@ -2199,7 +2199,7 @@ String EditorInspector::get_object_class() const {
 
 void EditorInspector::_bind_methods() {
 
-	ClassDB::bind_method("_property_changed", &EditorInspector::_property_changed, DEFVAL(false));
+	ClassDB::bind_method("_property_changed", &EditorInspector::_property_changed, DEFVAL(""), DEFVAL(false));
 	ClassDB::bind_method("_multiple_properties_changed", &EditorInspector::_multiple_properties_changed);
 	ClassDB::bind_method("_property_changed_update_all", &EditorInspector::_property_changed_update_all);
 

+ 1 - 1
editor/editor_inspector.h

@@ -299,7 +299,7 @@ class EditorInspector : public ScrollContainer {
 
 	void _edit_set(const String &p_name, const Variant &p_value, bool p_refresh_all, const String &p_changed_field);
 
-	void _property_changed(const String &p_path, const Variant &p_value, bool changing = false);
+	void _property_changed(const String &p_path, const Variant &p_value, const String &p_name = "", bool changing = false);
 	void _property_changed_update_all(const String &p_path, const Variant &p_value);
 	void _multiple_properties_changed(Vector<String> p_paths, Array p_values);
 	void _property_keyed(const String &p_path, bool p_advance);

+ 32 - 32
editor/editor_properties.cpp

@@ -61,7 +61,7 @@ void EditorPropertyText::_text_changed(const String &p_string) {
 	if (updating)
 		return;
 
-	emit_signal("property_changed", get_edited_property(), p_string, true);
+	emit_signal("property_changed", get_edited_property(), p_string, "", true);
 }
 
 void EditorPropertyText::update_property() {
@@ -96,11 +96,11 @@ EditorPropertyText::EditorPropertyText() {
 
 void EditorPropertyMultilineText::_big_text_changed() {
 	text->set_text(big_text->get_text());
-	emit_signal("property_changed", get_edited_property(), big_text->get_text(), true);
+	emit_signal("property_changed", get_edited_property(), big_text->get_text(), "", true);
 }
 
 void EditorPropertyMultilineText::_text_changed() {
-	emit_signal("property_changed", get_edited_property(), text->get_text(), true);
+	emit_signal("property_changed", get_edited_property(), text->get_text(), "", true);
 }
 
 void EditorPropertyMultilineText::_open_big_text() {
@@ -1056,14 +1056,14 @@ EditorPropertyEasing::EditorPropertyEasing() {
 
 ///////////////////// VECTOR2 /////////////////////////
 
-void EditorPropertyVector2::_value_changed(double val) {
+void EditorPropertyVector2::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
 	Vector2 v2;
 	v2.x = spin[0]->get_value();
 	v2.y = spin[1]->get_value();
-	emit_signal("property_changed", get_edited_property(), v2);
+	emit_signal("property_changed", get_edited_property(), v2, p_name);
 }
 
 void EditorPropertyVector2::update_property() {
@@ -1123,7 +1123,7 @@ EditorPropertyVector2::EditorPropertyVector2() {
 		spin[i]->set_label(desc[i]);
 		bc->add_child(spin[i]);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 		if (horizontal) {
 			spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		}
@@ -1137,7 +1137,7 @@ EditorPropertyVector2::EditorPropertyVector2() {
 
 ///////////////////// RECT2 /////////////////////////
 
-void EditorPropertyRect2::_value_changed(double val) {
+void EditorPropertyRect2::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1146,7 +1146,7 @@ void EditorPropertyRect2::_value_changed(double val) {
 	r2.position.y = spin[1]->get_value();
 	r2.size.x = spin[2]->get_value();
 	r2.size.y = spin[3]->get_value();
-	emit_signal("property_changed", get_edited_property(), r2);
+	emit_signal("property_changed", get_edited_property(), r2, p_name);
 }
 
 void EditorPropertyRect2::update_property() {
@@ -1207,7 +1207,7 @@ EditorPropertyRect2::EditorPropertyRect2() {
 		spin[i]->set_flat(true);
 		bc->add_child(spin[i]);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 		if (horizontal) {
 			spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		}
@@ -1221,7 +1221,7 @@ EditorPropertyRect2::EditorPropertyRect2() {
 
 ///////////////////// VECTOR3 /////////////////////////
 
-void EditorPropertyVector3::_value_changed(double val) {
+void EditorPropertyVector3::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1229,7 +1229,7 @@ void EditorPropertyVector3::_value_changed(double val) {
 	v3.x = spin[0]->get_value();
 	v3.y = spin[1]->get_value();
 	v3.z = spin[2]->get_value();
-	emit_signal("property_changed", get_edited_property(), v3);
+	emit_signal("property_changed", get_edited_property(), v3, p_name);
 }
 
 void EditorPropertyVector3::update_property() {
@@ -1288,7 +1288,7 @@ EditorPropertyVector3::EditorPropertyVector3() {
 		spin[i]->set_label(desc[i]);
 		bc->add_child(spin[i]);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 		if (horizontal) {
 			spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		}
@@ -1301,7 +1301,7 @@ EditorPropertyVector3::EditorPropertyVector3() {
 }
 ///////////////////// PLANE /////////////////////////
 
-void EditorPropertyPlane::_value_changed(double val) {
+void EditorPropertyPlane::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1310,7 +1310,7 @@ void EditorPropertyPlane::_value_changed(double val) {
 	p.normal.y = spin[1]->get_value();
 	p.normal.z = spin[2]->get_value();
 	p.d = spin[3]->get_value();
-	emit_signal("property_changed", get_edited_property(), p);
+	emit_signal("property_changed", get_edited_property(), p, p_name);
 }
 
 void EditorPropertyPlane::update_property() {
@@ -1371,7 +1371,7 @@ EditorPropertyPlane::EditorPropertyPlane() {
 		spin[i]->set_label(desc[i]);
 		bc->add_child(spin[i]);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 		if (horizontal) {
 			spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		}
@@ -1385,7 +1385,7 @@ EditorPropertyPlane::EditorPropertyPlane() {
 
 ///////////////////// QUAT /////////////////////////
 
-void EditorPropertyQuat::_value_changed(double val) {
+void EditorPropertyQuat::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1394,7 +1394,7 @@ void EditorPropertyQuat::_value_changed(double val) {
 	p.y = spin[1]->get_value();
 	p.z = spin[2]->get_value();
 	p.w = spin[3]->get_value();
-	emit_signal("property_changed", get_edited_property(), p);
+	emit_signal("property_changed", get_edited_property(), p, p_name);
 }
 
 void EditorPropertyQuat::update_property() {
@@ -1454,7 +1454,7 @@ EditorPropertyQuat::EditorPropertyQuat() {
 		spin[i]->set_label(desc[i]);
 		bc->add_child(spin[i]);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 		if (horizontal) {
 			spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		}
@@ -1468,7 +1468,7 @@ EditorPropertyQuat::EditorPropertyQuat() {
 
 ///////////////////// AABB /////////////////////////
 
-void EditorPropertyAABB::_value_changed(double val) {
+void EditorPropertyAABB::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1480,7 +1480,7 @@ void EditorPropertyAABB::_value_changed(double val) {
 	p.size.y = spin[4]->get_value();
 	p.size.z = spin[5]->get_value();
 
-	emit_signal("property_changed", get_edited_property(), p);
+	emit_signal("property_changed", get_edited_property(), p, p_name);
 }
 
 void EditorPropertyAABB::update_property() {
@@ -1536,7 +1536,7 @@ EditorPropertyAABB::EditorPropertyAABB() {
 		g->add_child(spin[i]);
 		spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 	}
 	set_bottom_editor(g);
 	setting = false;
@@ -1544,7 +1544,7 @@ EditorPropertyAABB::EditorPropertyAABB() {
 
 ///////////////////// TRANSFORM2D /////////////////////////
 
-void EditorPropertyTransform2D::_value_changed(double val) {
+void EditorPropertyTransform2D::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1556,7 +1556,7 @@ void EditorPropertyTransform2D::_value_changed(double val) {
 	p[2][0] = spin[4]->get_value();
 	p[2][1] = spin[5]->get_value();
 
-	emit_signal("property_changed", get_edited_property(), p);
+	emit_signal("property_changed", get_edited_property(), p, p_name);
 }
 
 void EditorPropertyTransform2D::update_property() {
@@ -1611,7 +1611,7 @@ EditorPropertyTransform2D::EditorPropertyTransform2D() {
 		g->add_child(spin[i]);
 		spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 	}
 	set_bottom_editor(g);
 	setting = false;
@@ -1619,7 +1619,7 @@ EditorPropertyTransform2D::EditorPropertyTransform2D() {
 
 ///////////////////// BASIS /////////////////////////
 
-void EditorPropertyBasis::_value_changed(double val) {
+void EditorPropertyBasis::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1634,7 +1634,7 @@ void EditorPropertyBasis::_value_changed(double val) {
 	p[1][2] = spin[7]->get_value();
 	p[2][2] = spin[8]->get_value();
 
-	emit_signal("property_changed", get_edited_property(), p);
+	emit_signal("property_changed", get_edited_property(), p, p_name);
 }
 
 void EditorPropertyBasis::update_property() {
@@ -1692,7 +1692,7 @@ EditorPropertyBasis::EditorPropertyBasis() {
 		g->add_child(spin[i]);
 		spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 	}
 	set_bottom_editor(g);
 	setting = false;
@@ -1700,7 +1700,7 @@ EditorPropertyBasis::EditorPropertyBasis() {
 
 ///////////////////// TRANSFORM /////////////////////////
 
-void EditorPropertyTransform::_value_changed(double val) {
+void EditorPropertyTransform::_value_changed(double val, const String &p_name) {
 	if (setting)
 		return;
 
@@ -1718,7 +1718,7 @@ void EditorPropertyTransform::_value_changed(double val) {
 	p.origin[1] = spin[10]->get_value();
 	p.origin[2] = spin[11]->get_value();
 
-	emit_signal("property_changed", get_edited_property(), p);
+	emit_signal("property_changed", get_edited_property(), p, p_name);
 }
 
 void EditorPropertyTransform::update_property() {
@@ -1779,7 +1779,7 @@ EditorPropertyTransform::EditorPropertyTransform() {
 		g->add_child(spin[i]);
 		spin[i]->set_h_size_flags(SIZE_EXPAND_FILL);
 		add_focusable(spin[i]);
-		spin[i]->connect("value_changed", this, "_value_changed");
+		spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i]));
 	}
 	set_bottom_editor(g);
 	setting = false;
@@ -1789,12 +1789,12 @@ EditorPropertyTransform::EditorPropertyTransform() {
 
 void EditorPropertyColor::_color_changed(const Color &p_color) {
 
-	emit_signal("property_changed", get_edited_property(), p_color, true);
+	emit_signal("property_changed", get_edited_property(), p_color, "", true);
 }
 
 void EditorPropertyColor::_popup_closed() {
 
-	emit_signal("property_changed", get_edited_property(), picker->get_pick_color(), false);
+	emit_signal("property_changed", get_edited_property(), picker->get_pick_color(), "", false);
 }
 
 void EditorPropertyColor::_bind_methods() {

+ 9 - 9
editor/editor_properties.h

@@ -338,7 +338,7 @@ class EditorPropertyVector2 : public EditorProperty {
 	GDCLASS(EditorPropertyVector2, EditorProperty)
 	EditorSpinSlider *spin[2];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -354,7 +354,7 @@ class EditorPropertyRect2 : public EditorProperty {
 	GDCLASS(EditorPropertyRect2, EditorProperty)
 	EditorSpinSlider *spin[4];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -370,7 +370,7 @@ class EditorPropertyVector3 : public EditorProperty {
 	GDCLASS(EditorPropertyVector3, EditorProperty)
 	EditorSpinSlider *spin[3];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -386,7 +386,7 @@ class EditorPropertyPlane : public EditorProperty {
 	GDCLASS(EditorPropertyPlane, EditorProperty)
 	EditorSpinSlider *spin[4];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -402,7 +402,7 @@ class EditorPropertyQuat : public EditorProperty {
 	GDCLASS(EditorPropertyQuat, EditorProperty)
 	EditorSpinSlider *spin[4];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -418,7 +418,7 @@ class EditorPropertyAABB : public EditorProperty {
 	GDCLASS(EditorPropertyAABB, EditorProperty)
 	EditorSpinSlider *spin[6];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -434,7 +434,7 @@ class EditorPropertyTransform2D : public EditorProperty {
 	GDCLASS(EditorPropertyTransform2D, EditorProperty)
 	EditorSpinSlider *spin[6];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -450,7 +450,7 @@ class EditorPropertyBasis : public EditorProperty {
 	GDCLASS(EditorPropertyBasis, EditorProperty)
 	EditorSpinSlider *spin[9];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);
@@ -466,7 +466,7 @@ class EditorPropertyTransform : public EditorProperty {
 	GDCLASS(EditorPropertyTransform, EditorProperty)
 	EditorSpinSlider *spin[12];
 	bool setting;
-	void _value_changed(double p_val);
+	void _value_changed(double p_val, const String &p_name);
 
 protected:
 	void _notification(int p_what);