EditorNode: New default dock layout

As discussed with @reduz, now that the FileSystem dock is getting
files display in tree view (#21426), we can change the docks layout
again to give more height to the new inspector.

The new layout is thus:
- Top left: Scene and Import docks
- Bottom left: FileSystem
- Right (full height): Inspector and Node docks

The 2nd left (LEFT_R) and 1st right (RIGHT_L) VSplitContainers (the
ones in use) also get an additional 40px of width compared to their
previous size (which was the minimum size).

Fixes #21480.
This commit is contained in:
Rémi Verschelde 2018-09-14 17:07:46 +02:00
parent c884b55ff0
commit 8e0dfe5501
1 changed files with 27 additions and 21 deletions

View File

@ -5460,49 +5460,55 @@ EditorNode::EditorNode() {
filesystem_dock->connect("open", this, "open_request");
filesystem_dock->connect("instance", this, "_instance_request");
// FileSystem: Full height left
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(filesystem_dock);
dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(filesystem_dock->get_index(), TTR("FileSystem"));
// Scene: Top left
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scene_tree_dock);
dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(scene_tree_dock->get_index(), TTR("Scene"));
// Scene: Top right
dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(scene_tree_dock);
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(scene_tree_dock->get_index(), TTR("Scene"));
// Import: Top left, behind Scene
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(import_dock);
dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(import_dock->get_index(), TTR("Import"));
// Import: Top right, behind Scene
dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(import_dock);
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(import_dock->get_index(), TTR("Import"));
// FileSystem: Bottom left
dock_slot[DOCK_SLOT_LEFT_BR]->add_child(filesystem_dock);
dock_slot[DOCK_SLOT_LEFT_BR]->set_tab_title(filesystem_dock->get_index(), TTR("FileSystem"));
// Inspector: Bottom right
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(inspector_dock);
dock_slot[DOCK_SLOT_RIGHT_BL]->set_tab_title(inspector_dock->get_index(), TTR("Inspector"));
// Inspector: Full height right
dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(inspector_dock);
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(inspector_dock->get_index(), TTR("Inspector"));
// Node: Bottom right, behind Inspector
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock);
dock_slot[DOCK_SLOT_RIGHT_BL]->set_tab_title(node_dock->get_index(), TTR("Node"));
// Node: Full height right, behind Inspector
dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(node_dock);
dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(node_dock->get_index(), TTR("Node"));
// Hide unused dock slots and vsplits
dock_slot[DOCK_SLOT_LEFT_UL]->hide();
dock_slot[DOCK_SLOT_LEFT_BL]->hide();
dock_slot[DOCK_SLOT_LEFT_BR]->hide();
dock_slot[DOCK_SLOT_RIGHT_BL]->hide();
dock_slot[DOCK_SLOT_RIGHT_UR]->hide();
dock_slot[DOCK_SLOT_RIGHT_BR]->hide();
left_l_vsplit->hide();
right_r_vsplit->hide();
// Add some offsets to left_r and main hsplits to make LEFT_R and RIGHT_L docks wider than minsize
left_r_hsplit->set_split_offset(40 * EDSCALE);
main_hsplit->set_split_offset(-40 * EDSCALE);
// Define corresponding default layout
const String docks_section = "docks";
overridden_default_layout = -1;
default_layout.instance();
// Dock numbers are based on DockSlot enum value + 1
default_layout->set_value(docks_section, "dock_3", "FileSystem");
default_layout->set_value(docks_section, "dock_5", "Scene,Import");
default_layout->set_value(docks_section, "dock_6", "Inspector,Node");
default_layout->set_value(docks_section, "dock_3", "Scene,Import");
default_layout->set_value(docks_section, "dock_4", "FileSystem");
default_layout->set_value(docks_section, "dock_5", "Inspector,Node");
for (int i = 0; i < vsplits.size(); i++)
default_layout->set_value(docks_section, "dock_split_" + itos(i + 1), 0);
for (int i = 0; i < hsplits.size(); i++)
default_layout->set_value(docks_section, "dock_hsplit_" + itos(i + 1), 0);
default_layout->set_value(docks_section, "dock_hsplit_1", 0);
default_layout->set_value(docks_section, "dock_hsplit_2", 40 * EDSCALE);
default_layout->set_value(docks_section, "dock_hsplit_3", -40 * EDSCALE);
default_layout->set_value(docks_section, "dock_hsplit_4", 0);
_update_layouts_menu();