Browse Source

Merge pull request #20117 from ordigdug/inspector-fix-inconsistencies-with-exported-enums

Fix -new inspector- Inconsistencies with exported enums - Fixes remai…
Rémi Verschelde 7 years ago
parent
commit
76bfe14e00
1 changed files with 26 additions and 2 deletions
  1. 26 2
      editor/editor_properties.cpp

+ 26 - 2
editor/editor_properties.cpp

@@ -392,13 +392,37 @@ EditorPropertyCheck::EditorPropertyCheck() {
 
 void EditorPropertyEnum::_option_selected(int p_which) {
 
-	emit_signal("property_changed", get_edited_property(), p_which);
+	String text = options->get_item_text(p_which);
+	Vector<String> text_split = text.split(":");
+	if (text_split.size() == 1) {
+		emit_signal("property_changed", get_edited_property(), p_which);
+		return;
+	}
+	String name = text_split[1];
+	emit_signal("property_changed", get_edited_property(), name.to_int());
 }
 
 void EditorPropertyEnum::update_property() {
 
 	int which = get_edited_object()->get(get_edited_property());
-	options->select(which);
+	if (which == 0) {
+		options->select(which);
+		return;
+	}
+
+	for (int i = 0; i < options->get_item_count(); i++) {
+		String text = options->get_item_text(i);
+		Vector<String> text_split = text.split(":");
+		if (text_split.size() == 1) {
+			options->select(which);
+			return;
+		}
+		String name = text_split[1];
+		if (itos(which) == name) {
+			options->select(i);
+			return;
+		}
+	}
 }
 
 void EditorPropertyEnum::setup(const Vector<String> &p_options) {