From 131001a4fb10a202e9cbe1df8e98095d1b35789b Mon Sep 17 00:00:00 2001 From: Dawid Wdowiak Date: Sun, 30 Dec 2018 17:52:09 +0100 Subject: Fixed a property warning when loading a correct resource type Fixed warning when loading a correct resource type to a property that could take more than one resource type. --- editor/editor_properties.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index b992b90758..9bc4a6d2e4 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -1959,16 +1959,26 @@ void EditorPropertyResource::_file_selected(const String &p_path) { List prop_list; get_edited_object()->get_property_list(&prop_list); - String type; + String property_types; for (List::Element *E = prop_list.front(); E; E = E->next()) { if (E->get().name == get_edited_property() && (E->get().hint & PROPERTY_HINT_RESOURCE_TYPE)) { - type = E->get().hint_string; + property_types = E->get().hint_string; } } + if (!property_types.empty()) { + bool any_type_matches = false; + const Vector split_property_types = property_types.split(","); + for (int i = 0; i < split_property_types.size(); ++i) { + if (res->is_class(split_property_types[i])) { + any_type_matches = true; + break; + } + } - if (!type.empty() && !res->is_class(type)) - EditorNode::get_singleton()->show_warning(vformat(TTR("The selected resource (%s) does not match the type expected for this property (%s)."), res->get_class(), type)); + if (!any_type_matches) + EditorNode::get_singleton()->show_warning(vformat(TTR("The selected resource (%s) does not match any type expected for this property (%s)."), res->get_class(), property_types)); + } emit_signal("property_changed", get_edited_property(), res); update_property(); -- cgit v1.2.3