diff --git a/editor/docks/editor_dock_manager.cpp b/editor/docks/editor_dock_manager.cpp index ea22f80868c..4221f571e05 100644 --- a/editor/docks/editor_dock_manager.cpp +++ b/editor/docks/editor_dock_manager.cpp @@ -1004,6 +1004,10 @@ void EditorDockManager::register_dock_slot(DockSlot p_dock_slot, TabContainer *p EditorNode::get_singleton()->get_gui_base()->add_child(dock_drag_rects[p_dock_slot]); } +int EditorDockManager::get_hsplit_count() const { + return hsplits.size(); +} + int EditorDockManager::get_vsplit_count() const { return vsplits.size(); } diff --git a/editor/docks/editor_dock_manager.h b/editor/docks/editor_dock_manager.h index 585c3bc54cc..b46260ec8e2 100644 --- a/editor/docks/editor_dock_manager.h +++ b/editor/docks/editor_dock_manager.h @@ -149,6 +149,7 @@ public: void add_vsplit(DockSplitContainer *p_split); void add_hsplit(DockSplitContainer *p_split); void register_dock_slot(DockSlot p_dock_slot, TabContainer *p_tab_container); + int get_hsplit_count() const; int get_vsplit_count() const; PopupMenu *get_docks_menu(); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 06d598f97dc..66cb7e82112 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -8410,14 +8410,14 @@ EditorNode::EditorNode() { default_layout->set_value(docks_section, "dock_4", "FileSystem"); default_layout->set_value(docks_section, "dock_5", "Inspector,Node,History"); - // There are 4 vsplits and 4 hsplits. + int hsplits[] = { 0, 270, -270, 0 }; + DEV_ASSERT((int)std::size(hsplits) == editor_dock_manager->get_hsplit_count()); + for (int i = 0; i < editor_dock_manager->get_hsplit_count(); i++) { + default_layout->set_value(docks_section, "dock_hsplit_" + itos(i + 1), hsplits[i]); + } for (int i = 0; i < editor_dock_manager->get_vsplit_count(); i++) { default_layout->set_value(docks_section, "dock_split_" + itos(i + 1), 0); } - default_layout->set_value(docks_section, "dock_hsplit_1", 0); - default_layout->set_value(docks_section, "dock_hsplit_2", 270); - default_layout->set_value(docks_section, "dock_hsplit_3", -270); - default_layout->set_value(docks_section, "dock_hsplit_4", 0); _update_layouts_menu();