From 7d6308523a818d854b59c5d7313ef8e17c8544e5 Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Mon, 30 Aug 2021 21:31:43 +0200 Subject: [PATCH] FileManager: Add 'Open in Terminal' action for selected dirs on desktop This is to be more similar to the context menu from the windowed instance of File Manager. --- Userland/Applications/FileManager/main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Userland/Applications/FileManager/main.cpp b/Userland/Applications/FileManager/main.cpp index 76172b10c3..5a8c6ad9c8 100644 --- a/Userland/Applications/FileManager/main.cpp +++ b/Userland/Applications/FileManager/main.cpp @@ -368,6 +368,20 @@ int run_in_desktop_mode() } }); + auto open_terminal_action = GUI::Action::create("Open in &Terminal", {}, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/app-terminal.png"), [&](auto&) { + auto paths = directory_view.selected_file_paths(); + if (paths.is_empty()) { + spawn_terminal(directory_view.path()); + return; + } + + for (auto& path : paths) { + if (Core::File::is_directory(path)) { + spawn_terminal(path); + } + } + }); + auto display_properties_action = GUI::Action::create("&Display Settings", {}, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/app-display-settings.png"), [&](GUI::Action const&) { Desktop::Launcher::open(URL::create_with_file_protocol("/bin/DisplaySettings")); }); @@ -384,6 +398,7 @@ int run_in_desktop_mode() auto desktop_context_menu = GUI::Menu::construct("Directory View Directory"); desktop_context_menu->add_action(file_manager_action); + desktop_context_menu->add_action(open_terminal_action); desktop_context_menu->add_separator(); desktop_context_menu->add_action(cut_action); desktop_context_menu->add_action(copy_action);