summaryrefslogtreecommitdiffstats
path: root/editor/editor_inspector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_inspector.cpp')
-rw-r--r--editor/editor_inspector.cpp146
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;