diff options
Diffstat (limited to 'editor/editor_inspector.cpp')
-rw-r--r-- | editor/editor_inspector.cpp | 146 |
1 files changed, 5 insertions, 141 deletions
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 4e76d40b1d..3ee61f5203 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -43,6 +43,7 @@ #include "editor/multi_node_edit.h" #include "editor/plugins/script_editor_plugin.h" #include "editor/themes/editor_scale.h" +#include "editor/themes/editor_theme_manager.h" #include "scene/gui/spin_box.h" #include "scene/gui/texture_rect.h" #include "scene/property_utils.h" @@ -214,22 +215,6 @@ void EditorProperty::_notification(int p_what) { text_size -= close->get_width() + 4 * EDSCALE; } } - - if (!configuration_warning.is_empty() && !read_only) { - Ref<Texture2D> warning; - - warning = get_theme_icon(SNAME("NodeWarning"), SNAME("EditorIcons")); - - rect.size.x -= warning->get_width() + get_theme_constant(SNAME("hseparator"), SNAME("Tree")); - - if (is_layout_rtl()) { - rect.position.x += warning->get_width() + get_theme_constant(SNAME("hseparator"), SNAME("Tree")); - } - - if (no_children) { - text_size -= warning->get_width() + 4 * EDSCALE; - } - } } //set children @@ -415,38 +400,6 @@ void EditorProperty::_notification(int p_what) { } else { delete_rect = Rect2(); } - - if (!configuration_warning.is_empty() && !read_only) { - Ref<Texture2D> warning; - - StringName warning_icon; - Node *node = Object::cast_to<Node>(object); - if (node) { - const int warning_num = node->get_configuration_warnings_of_property(property_path).size(); - warning_icon = Node::get_configuration_warning_icon(warning_num); - } else { - // This shouldn't happen, but let's not crash over an icon. - warning_icon = "NodeWarning"; - } - warning = get_theme_icon(warning_icon, SNAME("EditorIcons")); - - ofs -= warning->get_width() + get_theme_constant(SNAME("hseparator"), SNAME("Tree")); - - Color color2(1, 1, 1); - if (configuration_warning_hover) { - color2.r *= 1.2; - color2.g *= 1.2; - color2.b *= 1.2; - } - configuration_warning_rect = Rect2(ofs, ((size.height - warning->get_height()) / 2), warning->get_width(), warning->get_height()); - if (rtl) { - draw_texture(warning, Vector2(size.width - configuration_warning_rect.position.x - warning->get_width(), configuration_warning_rect.position.y), color2); - } else { - draw_texture(warning, configuration_warning_rect.position, color2); - } - } else { - configuration_warning_rect = Rect2(); - } } break; } } @@ -477,7 +430,7 @@ EditorInspector *EditorProperty::get_parent_inspector() const { } parent = parent->get_parent(); } - ERR_FAIL_V_MSG(nullptr, "EditorProperty is outside inspector."); + return nullptr; } void EditorProperty::set_doc_path(const String &p_doc_path) { @@ -722,12 +675,6 @@ void EditorProperty::gui_input(const Ref<InputEvent> &p_event) { check_hover = new_check_hover; queue_redraw(); } - - bool new_configuration_warning_hover = configuration_warning_rect.has_point(mpos) && !button_left; - if (new_configuration_warning_hover != configuration_warning_hover) { - configuration_warning_hover = new_configuration_warning_hover; - queue_redraw(); - } } Ref<InputEventMouseButton> mb = p_event; @@ -784,16 +731,6 @@ void EditorProperty::gui_input(const Ref<InputEvent> &p_event) { queue_redraw(); emit_signal(SNAME("property_checked"), property, checked); } - - if (configuration_warning_rect.has_point(mpos)) { - if (warning_dialog == nullptr) { - warning_dialog = memnew(AcceptDialog); - add_child(warning_dialog); - warning_dialog->set_title(TTR("Node Configuration Warning!")); - } - warning_dialog->set_text(configuration_warning); - warning_dialog->popup_centered(); - } } else if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::RIGHT) { accept_event(); _update_popup(); @@ -919,16 +856,6 @@ float EditorProperty::get_name_split_ratio() const { return split_ratio; } -void EditorProperty::set_configuration_warning(const String &p_configuration_warning) { - configuration_warning = p_configuration_warning; - queue_redraw(); - queue_sort(); -} - -String EditorProperty::get_configuration_warning() const { - return configuration_warning; -} - void EditorProperty::set_object_and_property(Object *p_object, const StringName &p_property) { object = p_object; property = p_property; @@ -985,15 +912,6 @@ void EditorProperty::_update_pin_flags() { } } -void EditorProperty::_update_configuration_warnings() { - Node *node = Object::cast_to<Node>(object); - if (node) { - const PackedStringArray warnings = node->get_configuration_warnings_as_strings(true, property_path); - const String warning_lines = String("\n").join(warnings); - set_configuration_warning(warning_lines); - } -} - Control *EditorProperty::make_custom_tooltip(const String &p_text) const { EditorHelpBit *tooltip = nullptr; @@ -1069,9 +987,6 @@ void EditorProperty::_bind_methods() { ClassDB::bind_method(D_METHOD("set_deletable", "deletable"), &EditorProperty::set_deletable); ClassDB::bind_method(D_METHOD("is_deletable"), &EditorProperty::is_deletable); - ClassDB::bind_method(D_METHOD("set_configuration_warning", "configuration_warning"), &EditorProperty::set_configuration_warning); - ClassDB::bind_method(D_METHOD("get_configuration_warning"), &EditorProperty::get_configuration_warning); - ClassDB::bind_method(D_METHOD("get_edited_property"), &EditorProperty::get_edited_property); ClassDB::bind_method(D_METHOD("get_edited_object"), &EditorProperty::get_edited_object); @@ -1089,7 +1004,6 @@ void EditorProperty::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "draw_warning"), "set_draw_warning", "is_draw_warning"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keying"), "set_keying", "is_keying"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "deletable"), "set_deletable", "is_deletable"); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "configuration_warning"), "set_configuration_warning", "get_configuration_warning"); ADD_SIGNAL(MethodInfo("property_changed", PropertyInfo(Variant::STRING_NAME, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT), PropertyInfo(Variant::STRING_NAME, "field"), PropertyInfo(Variant::BOOL, "changing"))); ADD_SIGNAL(MethodInfo("multiple_properties_changed", PropertyInfo(Variant::PACKED_STRING_ARRAY, "properties"), PropertyInfo(Variant::ARRAY, "value"))); @@ -3409,7 +3323,6 @@ void EditorInspector::update_tree() { ep->set_keying(keying); ep->set_read_only(property_read_only || all_read_only); ep->set_deletable(deletable_properties || p.name.begins_with("metadata/")); - ep->_update_configuration_warnings(); } current_vbox->add_child(editors[i].property_editor); @@ -3535,9 +3448,6 @@ void EditorInspector::edit(Object *p_object) { object = p_object; - property_configuration_warnings.clear(); - _update_configuration_warnings(); - if (object) { update_scroll_request = 0; //reset if (scroll_cache.has(object->get_instance_id())) { //if exists, set something else @@ -4059,52 +3969,6 @@ void EditorInspector::_node_removed(Node *p_node) { } } -void EditorInspector::_warning_changed(Node *p_node) { - if (p_node == object) { - // Only update the tree if the list of configuration warnings has changed. - if (_update_configuration_warnings()) { - update_tree_pending = true; - } - } -} - -bool EditorInspector::_update_configuration_warnings() { - Node *node = Object::cast_to<Node>(object); - if (!node) { - return false; - } - - bool changed = false; - LocalVector<int> found_warning_indices; - - // New and changed warnings. - Vector<Dictionary> warnings = node->get_configuration_warnings_as_dicts(); - for (const Dictionary &warning : warnings) { - if (!warning.has("property")) { - continue; - } - - int found_warning_index = property_configuration_warnings.find(warning); - if (found_warning_index < 0) { - found_warning_index = property_configuration_warnings.size(); - property_configuration_warnings.push_back(warning); - changed = true; - } - found_warning_indices.push_back(found_warning_index); - } - - // Removed warnings. - for (uint32_t i = 0; i < property_configuration_warnings.size(); i++) { - if (found_warning_indices.find(i) < 0) { - property_configuration_warnings.remove_at(i); - i--; - changed = true; - } - } - - return changed; -} - void EditorInspector::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { @@ -4116,7 +3980,6 @@ void EditorInspector::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: { if (!sub_inspector) { get_tree()->connect("node_removed", callable_mp(this, &EditorInspector::_node_removed)); - get_tree()->connect("node_configuration_warning_changed", callable_mp(this, &EditorInspector::_warning_changed)); } } break; @@ -4127,7 +3990,6 @@ void EditorInspector::_notification(int p_what) { case NOTIFICATION_EXIT_TREE: { if (!sub_inspector) { get_tree()->disconnect("node_removed", callable_mp(this, &EditorInspector::_node_removed)); - get_tree()->disconnect("node_configuration_warning_changed", callable_mp(this, &EditorInspector::_warning_changed)); } edit(nullptr); } break; @@ -4184,7 +4046,9 @@ void EditorInspector::_notification(int p_what) { } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - _update_inspector_bg(); + if (EditorThemeManager::is_generated_theme_outdated()) { + _update_inspector_bg(); + } bool needs_update = false; |