From ffe00d53bfc8b693f6ec6025598596b265e3fe74 Mon Sep 17 00:00:00 2001 From: DallasHuff Date: Fri, 17 Oct 2025 08:36:08 -0500 Subject: [PATCH] Moved File Filter When Filesystem Dock is on the Bottom Panel When the Filesystem Dock is on the bottom panel vertical space is more valuable than horizontal space. Moving the file filter to be horizontal with the current path LineEdit makes the dock more space efficient when on the bottom panel. When docked on the side, the file filter is unchanged. --- editor/docks/filesystem_dock.cpp | 15 ++++++++++++--- editor/docks/filesystem_dock.h | 3 +++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/editor/docks/filesystem_dock.cpp b/editor/docks/filesystem_dock.cpp index 7ebbed45cad..b8d136f7fc2 100644 --- a/editor/docks/filesystem_dock.cpp +++ b/editor/docks/filesystem_dock.cpp @@ -489,7 +489,11 @@ void FileSystemDock::_update_display_mode(bool p_force) { button_toggle_display_mode->set_button_icon(get_editor_theme_icon(SNAME("Panels1"))); tree->show(); tree->set_v_size_flags(SIZE_EXPAND_FILL); - toolbar2_hbc->show(); + if (horizontal) { + toolbar2_hbc->hide(); + } else { + toolbar2_hbc->show(); + } _update_tree(get_uncollapsed_paths()); file_list_vb->hide(); @@ -4019,12 +4023,14 @@ MenuButton *FileSystemDock::_create_file_menu_button() { } void FileSystemDock::update_layout(EditorDock::DockLayout p_layout) { - bool horizontal = p_layout == EditorDock::DOCK_LAYOUT_HORIZONTAL; + horizontal = p_layout == EditorDock::DOCK_LAYOUT_HORIZONTAL; if (button_dock_placement->is_visible() == horizontal) { return; } if (horizontal) { + path_hb->reparent(toolbar_hbc, false); + toolbar_hbc->move_child(path_hb, 2); set_meta("_dock_display_mode", get_display_mode()); set_meta("_dock_file_display_mode", get_file_list_display_mode()); @@ -4035,6 +4041,8 @@ void FileSystemDock::update_layout(EditorDock::DockLayout p_layout) { set_file_list_display_mode(new_file_display_mode); set_custom_minimum_size(Size2(0, 200) * EDSCALE); } else { + path_hb->reparent(file_list_vb); + file_list_vb->move_child(path_hb, 0); set_meta("_bottom_display_mode", get_display_mode()); set_meta("_bottom_file_display_mode", get_file_list_display_mode()); @@ -4180,7 +4188,7 @@ FileSystemDock::FileSystemDock() { VBoxContainer *top_vbc = memnew(VBoxContainer); main_vb->add_child(top_vbc); - HBoxContainer *toolbar_hbc = memnew(HBoxContainer); + toolbar_hbc = memnew(HBoxContainer); top_vbc->add_child(toolbar_hbc); HBoxContainer *nav_hbc = memnew(HBoxContainer); @@ -4276,6 +4284,7 @@ FileSystemDock::FileSystemDock() { split_box->add_child(file_list_vb); path_hb = memnew(HBoxContainer); + path_hb->set_h_size_flags(SIZE_EXPAND_FILL); file_list_vb->add_child(path_hb); file_list_search_box = memnew(LineEdit); diff --git a/editor/docks/filesystem_dock.h b/editor/docks/filesystem_dock.h index a5ed30ad346..67f6e55b3c1 100644 --- a/editor/docks/filesystem_dock.h +++ b/editor/docks/filesystem_dock.h @@ -165,6 +165,7 @@ private: Button *button_hist_prev = nullptr; LineEdit *current_path_line_edit = nullptr; + HBoxContainer *toolbar_hbc = nullptr; HBoxContainer *toolbar2_hbc = nullptr; LineEdit *tree_search_box = nullptr; MenuButton *tree_button_sort = nullptr; @@ -182,6 +183,8 @@ private: DisplayMode display_mode; DisplayMode old_display_mode; + bool horizontal = false; + PopupMenu *file_list_popup = nullptr; PopupMenu *tree_popup = nullptr;