From 81ee870c9be0a97fbb889d16789a19f9d52a773e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 18 Aug 2022 20:44:15 +0200 Subject: [PATCH] FileManager: Add "open child directory" action (Alt+Down) This mirrors the "open parent directory" action, but traverses the breadcrumbbar segments from left-to-right instead. The name is a little bit strange, and maybe we can come up with something better. It does feel pretty nice to use though. :^) --- Userland/Applications/FileManager/main.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Userland/Applications/FileManager/main.cpp b/Userland/Applications/FileManager/main.cpp index 617d91c36d..6d85735f7a 100644 --- a/Userland/Applications/FileManager/main.cpp +++ b/Userland/Applications/FileManager/main.cpp @@ -667,6 +667,15 @@ ErrorOr run_in_windowed_mode(String const& initial_location, String const& directory_view->open_parent_directory(); }); + auto open_child_directory_action = GUI::Action::create("Open &Child Directory", { Mod_Alt, Key_Down }, [&](GUI::Action const&) { + auto segment_index = breadcrumbbar.selected_segment(); + if (!segment_index.has_value() || *segment_index >= breadcrumbbar.segment_count() - 1) + return; + breadcrumbbar.set_selected_segment(*segment_index + 1); + if (breadcrumbbar.on_segment_click) + breadcrumbbar.on_segment_click(*segment_index + 1); + }); + RefPtr layout_toolbar_action; RefPtr layout_location_action; RefPtr layout_statusbar_action; @@ -1029,6 +1038,7 @@ ErrorOr run_in_windowed_mode(String const& initial_location, String const& TRY(go_menu->try_add_action(go_back_action)); TRY(go_menu->try_add_action(go_forward_action)); TRY(go_menu->try_add_action(open_parent_directory_action)); + TRY(go_menu->try_add_action(open_child_directory_action)); TRY(go_menu->try_add_action(go_home_action)); TRY(go_menu->try_add_action(go_to_location_action)); TRY(go_menu->try_add_separator());