diff --git a/src/FolderManager/FileItem.vala b/src/FolderManager/FileItem.vala index 03d7289275..6b5f3092a3 100644 --- a/src/FolderManager/FileItem.vala +++ b/src/FolderManager/FileItem.vala @@ -41,19 +41,8 @@ namespace Scratch.FolderManager { } var file_type = info.get_attribute_string (GLib.FileAttribute.STANDARD_CONTENT_TYPE); - - var open_in_terminal_pane_item = new GLib.MenuItem ( - _("Open in Terminal Pane"), - GLib.Action.print_detailed_name ( - MainWindow.ACTION_PREFIX + MainWindow.ACTION_OPEN_IN_TERMINAL, - new Variant.string (file.file.get_parent ().get_path ()) - ) - ); - var contractor_items = Utils.create_contract_items_for_file (file.file); - var external_actions_section = new GLib.Menu (); - external_actions_section.append_item (open_in_terminal_pane_item); external_actions_section.append_item (create_submenu_for_open_in (file_type)); if (contractor_items.get_n_items () > 0) { external_actions_section.append_submenu ( diff --git a/src/FolderManager/FolderItem.vala b/src/FolderManager/FolderItem.vala index 33f8e130de..4484b74a33 100644 --- a/src/FolderManager/FolderItem.vala +++ b/src/FolderManager/FolderItem.vala @@ -88,16 +88,7 @@ namespace Scratch.FolderManager { } public override Gtk.Menu? get_context_menu () { - var open_in_terminal_pane_item = new GLib.MenuItem ( - (_("Open in Terminal Pane")), - GLib.Action.print_detailed_name ( - MainWindow.ACTION_PREFIX + MainWindow.ACTION_OPEN_IN_TERMINAL, - new Variant.string (file.path) - ) - ); - GLib.FileInfo info = null; - try { info = file.file.query_info (GLib.FileAttribute.STANDARD_CONTENT_TYPE, GLib.FileQueryInfoFlags.NONE); } catch (Error e) { @@ -133,7 +124,6 @@ namespace Scratch.FolderManager { ); var external_actions_section = new GLib.Menu (); - external_actions_section.append_item (open_in_terminal_pane_item); external_actions_section.append_item (create_submenu_for_open_in (file_type)); if (contractor_items.get_n_items () > 0) { external_actions_section.append_submenu (_("Other Actions"), contractor_items); @@ -158,6 +148,15 @@ namespace Scratch.FolderManager { } protected GLib.MenuItem create_submenu_for_open_in (string? file_type) { + var open_in_terminal_pane_item = new GLib.MenuItem ( + (_("Terminal Pane")), + GLib.Action.print_detailed_name ( + MainWindow.ACTION_PREFIX + MainWindow.ACTION_OPEN_IN_TERMINAL, + new Variant.string (file.path) + ) + ); + open_in_terminal_pane_item.set_icon (new ThemedIcon ("panel-bottom-symbolic")); + var other_menu_item = new GLib.MenuItem ( _("Other Application…"), GLib.Action.print_detailed_name ( @@ -169,9 +168,13 @@ namespace Scratch.FolderManager { var extra_section = new GLib.Menu (); extra_section.append_item (other_menu_item); + var terminal_pane_section = new Menu (); + terminal_pane_section.append_item (open_in_terminal_pane_item); + file_type = file_type ?? "inode/directory"; var open_in_menu = new GLib.Menu (); + open_in_menu.append_section (null, terminal_pane_section); open_in_menu.append_section (null, Utils.create_executable_app_items_for_file (file.file, file_type)); open_in_menu.append_section (null, extra_section);