diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-13 11:21:40 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-13 11:21:40 +0200 |
commit | ac652cf2a0980652e417e22f6143b18ae40ad680 (patch) | |
tree | ba20546420ec0443e588ec9cb86e0c1d8bab010d | |
parent | 40d8d82b852aa6ac4bce0d509fb5d58d14bddc12 (diff) | |
parent | 7d8684fdb5d0dd1b146f3e6fc5eb454c25a8f1f4 (diff) | |
download | redot-engine-ac652cf2a0980652e417e22f6143b18ae40ad680.tar.gz |
Merge pull request #96386 from AThousandShips/enum_inspector_improve
[Editor] Merge duplicate entries in enum property inspector
-rw-r--r-- | editor/editor_properties.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 2e46068e07..0fb57ce40e 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -687,16 +687,21 @@ void EditorPropertyEnum::update_property() { void EditorPropertyEnum::setup(const Vector<String> &p_options) { options->clear(); + HashMap<int64_t, Vector<String>> items; int64_t current_val = 0; - for (int i = 0; i < p_options.size(); i++) { - Vector<String> text_split = p_options[i].split(":"); + for (const String &option : p_options) { + Vector<String> text_split = option.split(":"); if (text_split.size() != 1) { current_val = text_split[1].to_int(); } - options->add_item(text_split[0]); - options->set_item_metadata(i, current_val); + items[current_val].push_back(text_split[0]); current_val += 1; } + + for (const KeyValue<int64_t, Vector<String>> &K : items) { + options->add_item(String(", ").join(K.value)); + options->set_item_metadata(-1, K.key); + } } void EditorPropertyEnum::set_option_button_clip(bool p_enable) { |