From 0ed400a45fee43a22fd836d00524cc53f42fe79f Mon Sep 17 00:00:00 2001 From: kobewi Date: Sat, 6 Dec 2025 19:50:58 +0100 Subject: [PATCH] Improve style changed signal in EditorDock --- editor/docks/editor_dock.cpp | 21 +++++++++++---------- editor/docks/editor_dock.h | 4 ++-- editor/docks/editor_dock_manager.cpp | 4 ++-- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/editor/docks/editor_dock.cpp b/editor/docks/editor_dock.cpp index 10326f93b69..ed5c9fe458e 100644 --- a/editor/docks/editor_dock.cpp +++ b/editor/docks/editor_dock.cpp @@ -39,6 +39,10 @@ void EditorDock::_set_default_slot_bind(EditorPlugin::DockSlot p_slot) { default_slot = (DockConstants::DockSlot)p_slot; } +void EditorDock::_emit_changed() { + emit_signal(SNAME("_tab_style_changed")); +} + void EditorDock::_bind_methods() { ClassDB::bind_method(D_METHOD("open"), &EditorDock::open); ClassDB::bind_method(D_METHOD("make_visible"), &EditorDock::make_visible); @@ -90,9 +94,10 @@ void EditorDock::_bind_methods() { ClassDB::bind_method(D_METHOD("set_available_layouts", "layouts"), &EditorDock::set_available_layouts); ClassDB::bind_method(D_METHOD("get_available_layouts"), &EditorDock::get_available_layouts); - ADD_PROPERTY(PropertyInfo(Variant::INT, "available_layouts", PROPERTY_HINT_FLAGS, "Vertical:1,Horizontal:2,Floating:3"), "set_available_layouts", "get_available_layouts"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "available_layouts", PROPERTY_HINT_FLAGS, "Vertical:1,Horizontal:2,Floating:4"), "set_available_layouts", "get_available_layouts"); ADD_SIGNAL(MethodInfo("closed")); + ADD_SIGNAL(MethodInfo("_tab_style_changed")); BIND_BITFIELD_FLAG(DOCK_LAYOUT_VERTICAL); BIND_BITFIELD_FLAG(DOCK_LAYOUT_HORIZONTAL); @@ -104,10 +109,6 @@ void EditorDock::_bind_methods() { GDVIRTUAL_BIND(_load_layout_from_config, "config", "section"); } -EditorDock::EditorDock() { - add_user_signal(MethodInfo("tab_style_changed")); -} - void EditorDock::open() { if (!is_open) { EditorDockManager::get_singleton()->open_dock(this, false); @@ -129,7 +130,7 @@ void EditorDock::set_title(const String &p_title) { return; } title = p_title; - emit_signal("tab_style_changed"); + _emit_changed(); } void EditorDock::set_global(bool p_global) { @@ -147,7 +148,7 @@ void EditorDock::set_icon_name(const StringName &p_name) { return; } icon_name = p_name; - emit_signal("tab_style_changed"); + _emit_changed(); } void EditorDock::set_dock_icon(const Ref &p_icon) { @@ -155,7 +156,7 @@ void EditorDock::set_dock_icon(const Ref &p_icon) { return; } dock_icon = p_icon; - emit_signal("tab_style_changed"); + _emit_changed(); } void EditorDock::set_force_show_icon(bool p_force) { @@ -163,7 +164,7 @@ void EditorDock::set_force_show_icon(bool p_force) { return; } force_show_icon = p_force; - emit_signal("tab_style_changed"); + _emit_changed(); } void EditorDock::set_title_color(const Color &p_color) { @@ -171,7 +172,7 @@ void EditorDock::set_title_color(const Color &p_color) { return; } title_color = p_color; - emit_signal("tab_style_changed"); + _emit_changed(); } void EditorDock::set_dock_shortcut(const Ref &p_shortcut) { diff --git a/editor/docks/editor_dock.h b/editor/docks/editor_dock.h index e33a31d94db..09e51569070 100644 --- a/editor/docks/editor_dock.h +++ b/editor/docks/editor_dock.h @@ -77,6 +77,8 @@ private: void _set_default_slot_bind(EditorPlugin::DockSlot p_slot); EditorPlugin::DockSlot _get_default_slot_bind() const { return (EditorPlugin::DockSlot)default_slot; } + void _emit_changed(); + protected: static void _bind_methods(); @@ -85,8 +87,6 @@ protected: GDVIRTUAL2(_load_layout_from_config, Ref, const String &) public: - EditorDock(); - void open(); void make_visible(); void close(); diff --git a/editor/docks/editor_dock_manager.cpp b/editor/docks/editor_dock_manager.cpp index a58aaadb555..168fc219be3 100644 --- a/editor/docks/editor_dock_manager.cpp +++ b/editor/docks/editor_dock_manager.cpp @@ -902,7 +902,7 @@ void EditorDockManager::add_dock(EditorDock *p_dock) { p_dock->dock_slot_index = p_dock->default_slot; all_docks.push_back(p_dock); - p_dock->connect("tab_style_changed", callable_mp(this, &EditorDockManager::_update_tab_style).bind(p_dock)); + p_dock->connect("_tab_style_changed", callable_mp(this, &EditorDockManager::_update_tab_style).bind(p_dock)); p_dock->connect("renamed", callable_mp(this, &EditorDockManager::_update_tab_style).bind(p_dock)); if (p_dock->default_slot != DockConstants::DOCK_SLOT_NONE) { @@ -921,7 +921,7 @@ void EditorDockManager::remove_dock(EditorDock *p_dock) { _move_dock(p_dock, nullptr); all_docks.erase(p_dock); - p_dock->disconnect("tab_style_changed", callable_mp(this, &EditorDockManager::_update_tab_style)); + p_dock->disconnect("_tab_style_changed", callable_mp(this, &EditorDockManager::_update_tab_style)); p_dock->disconnect("renamed", callable_mp(this, &EditorDockManager::_update_tab_style)); _update_layout(); }