From b732c2b341fd317f0aaf381679cbc779b7b9843b Mon Sep 17 00:00:00 2001 From: kobewi Date: Tue, 2 May 2023 23:59:00 +0200 Subject: [PATCH] Add background panel to new meta dialog --- editor/editor_inspector.cpp | 23 ++++++++++++++++++++++- editor/editor_inspector.h | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 0c813f2f77..2d9e413bc6 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -3908,6 +3908,12 @@ void EditorInspector::_notification(int p_what) { } } break; + case NOTIFICATION_THEME_CHANGED: { + if (add_meta_error_panel) { + add_meta_error_panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), SNAME("Tree"))); + } + } break; + case NOTIFICATION_PREDELETE: { edit(nullptr); //just in case } break; @@ -4075,13 +4081,16 @@ void EditorInspector::_show_add_meta_dialog() { VBoxContainer *vbc = memnew(VBoxContainer); add_meta_dialog->add_child(vbc); + HBoxContainer *hbc = memnew(HBoxContainer); vbc->add_child(hbc); hbc->add_child(memnew(Label(TTR("Name:")))); + add_meta_name = memnew(LineEdit); add_meta_name->set_custom_minimum_size(Size2(200 * EDSCALE, 1)); hbc->add_child(add_meta_name); hbc->add_child(memnew(Label(TTR("Type:")))); + add_meta_type = memnew(OptionButton); for (int i = 0; i < Variant::VARIANT_MAX; i++) { if (i == Variant::NIL || i == Variant::RID || i == Variant::CALLABLE || i == Variant::SIGNAL) { @@ -4092,12 +4101,24 @@ void EditorInspector::_show_add_meta_dialog() { add_meta_type->add_icon_item(get_theme_icon(type, "EditorIcons"), type, i); } hbc->add_child(add_meta_type); + + Control *spacing = memnew(Control); + vbc->add_child(spacing); + spacing->set_custom_minimum_size(Size2(0, 10 * EDSCALE)); + add_meta_dialog->set_ok_button_text(TTR("Add")); add_child(add_meta_dialog); add_meta_dialog->register_text_enter(add_meta_name); add_meta_dialog->connect("confirmed", callable_mp(this, &EditorInspector::_add_meta_confirm)); + + add_meta_error_panel = memnew(PanelContainer); + vbc->add_child(add_meta_error_panel); + if (is_inside_tree()) { + add_meta_error_panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), SNAME("Tree"))); + } + add_meta_error = memnew(Label); - vbc->add_child(add_meta_error); + add_meta_error_panel->add_child(add_meta_error); add_meta_name->connect("text_changed", callable_mp(this, &EditorInspector::_check_meta_name)); } diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index b3709e93f4..d86a73dc9f 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -538,6 +538,7 @@ class EditorInspector : public ScrollContainer { ConfirmationDialog *add_meta_dialog = nullptr; LineEdit *add_meta_name = nullptr; OptionButton *add_meta_type = nullptr; + PanelContainer *add_meta_error_panel = nullptr; Label *add_meta_error = nullptr; void _add_meta_confirm();