소스 검색

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 년 전
부모
커밋
76bfe14e00
1개의 변경된 파일26개의 추가작업 그리고 2개의 파일을 삭제
  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) {