mirror of
https://github.com/godotengine/godot.git
synced 2026-01-06 10:11:57 +03:00
Improve style changed signal in EditorDock
This commit is contained in:
@@ -39,6 +39,10 @@ void EditorDock::_set_default_slot_bind(EditorPlugin::DockSlot p_slot) {
|
|||||||
default_slot = (DockConstants::DockSlot)p_slot;
|
default_slot = (DockConstants::DockSlot)p_slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EditorDock::_emit_changed() {
|
||||||
|
emit_signal(SNAME("_tab_style_changed"));
|
||||||
|
}
|
||||||
|
|
||||||
void EditorDock::_bind_methods() {
|
void EditorDock::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("open"), &EditorDock::open);
|
ClassDB::bind_method(D_METHOD("open"), &EditorDock::open);
|
||||||
ClassDB::bind_method(D_METHOD("make_visible"), &EditorDock::make_visible);
|
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("set_available_layouts", "layouts"), &EditorDock::set_available_layouts);
|
||||||
ClassDB::bind_method(D_METHOD("get_available_layouts"), &EditorDock::get_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("closed"));
|
||||||
|
ADD_SIGNAL(MethodInfo("_tab_style_changed"));
|
||||||
|
|
||||||
BIND_BITFIELD_FLAG(DOCK_LAYOUT_VERTICAL);
|
BIND_BITFIELD_FLAG(DOCK_LAYOUT_VERTICAL);
|
||||||
BIND_BITFIELD_FLAG(DOCK_LAYOUT_HORIZONTAL);
|
BIND_BITFIELD_FLAG(DOCK_LAYOUT_HORIZONTAL);
|
||||||
@@ -104,10 +109,6 @@ void EditorDock::_bind_methods() {
|
|||||||
GDVIRTUAL_BIND(_load_layout_from_config, "config", "section");
|
GDVIRTUAL_BIND(_load_layout_from_config, "config", "section");
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorDock::EditorDock() {
|
|
||||||
add_user_signal(MethodInfo("tab_style_changed"));
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditorDock::open() {
|
void EditorDock::open() {
|
||||||
if (!is_open) {
|
if (!is_open) {
|
||||||
EditorDockManager::get_singleton()->open_dock(this, false);
|
EditorDockManager::get_singleton()->open_dock(this, false);
|
||||||
@@ -129,7 +130,7 @@ void EditorDock::set_title(const String &p_title) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
title = p_title;
|
title = p_title;
|
||||||
emit_signal("tab_style_changed");
|
_emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorDock::set_global(bool p_global) {
|
void EditorDock::set_global(bool p_global) {
|
||||||
@@ -147,7 +148,7 @@ void EditorDock::set_icon_name(const StringName &p_name) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
icon_name = p_name;
|
icon_name = p_name;
|
||||||
emit_signal("tab_style_changed");
|
_emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorDock::set_dock_icon(const Ref<Texture2D> &p_icon) {
|
void EditorDock::set_dock_icon(const Ref<Texture2D> &p_icon) {
|
||||||
@@ -155,7 +156,7 @@ void EditorDock::set_dock_icon(const Ref<Texture2D> &p_icon) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dock_icon = p_icon;
|
dock_icon = p_icon;
|
||||||
emit_signal("tab_style_changed");
|
_emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorDock::set_force_show_icon(bool p_force) {
|
void EditorDock::set_force_show_icon(bool p_force) {
|
||||||
@@ -163,7 +164,7 @@ void EditorDock::set_force_show_icon(bool p_force) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
force_show_icon = p_force;
|
force_show_icon = p_force;
|
||||||
emit_signal("tab_style_changed");
|
_emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorDock::set_title_color(const Color &p_color) {
|
void EditorDock::set_title_color(const Color &p_color) {
|
||||||
@@ -171,7 +172,7 @@ void EditorDock::set_title_color(const Color &p_color) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
title_color = p_color;
|
title_color = p_color;
|
||||||
emit_signal("tab_style_changed");
|
_emit_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorDock::set_dock_shortcut(const Ref<Shortcut> &p_shortcut) {
|
void EditorDock::set_dock_shortcut(const Ref<Shortcut> &p_shortcut) {
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ private:
|
|||||||
void _set_default_slot_bind(EditorPlugin::DockSlot p_slot);
|
void _set_default_slot_bind(EditorPlugin::DockSlot p_slot);
|
||||||
EditorPlugin::DockSlot _get_default_slot_bind() const { return (EditorPlugin::DockSlot)default_slot; }
|
EditorPlugin::DockSlot _get_default_slot_bind() const { return (EditorPlugin::DockSlot)default_slot; }
|
||||||
|
|
||||||
|
void _emit_changed();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
@@ -85,8 +87,6 @@ protected:
|
|||||||
GDVIRTUAL2(_load_layout_from_config, Ref<ConfigFile>, const String &)
|
GDVIRTUAL2(_load_layout_from_config, Ref<ConfigFile>, const String &)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EditorDock();
|
|
||||||
|
|
||||||
void open();
|
void open();
|
||||||
void make_visible();
|
void make_visible();
|
||||||
void close();
|
void close();
|
||||||
|
|||||||
@@ -902,7 +902,7 @@ void EditorDockManager::add_dock(EditorDock *p_dock) {
|
|||||||
|
|
||||||
p_dock->dock_slot_index = p_dock->default_slot;
|
p_dock->dock_slot_index = p_dock->default_slot;
|
||||||
all_docks.push_back(p_dock);
|
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));
|
p_dock->connect("renamed", callable_mp(this, &EditorDockManager::_update_tab_style).bind(p_dock));
|
||||||
|
|
||||||
if (p_dock->default_slot != DockConstants::DOCK_SLOT_NONE) {
|
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);
|
_move_dock(p_dock, nullptr);
|
||||||
|
|
||||||
all_docks.erase(p_dock);
|
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));
|
p_dock->disconnect("renamed", callable_mp(this, &EditorDockManager::_update_tab_style));
|
||||||
_update_layout();
|
_update_layout();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user