Browse Source

Added menu item Open With Default Application to right click directory menus

pipelines/235045657
eidheim 5 years ago
parent
commit
88b4900e35
  1. 24
      src/directories.cpp
  2. 6
      src/directories.hpp

24
src/directories.cpp

@ -358,7 +358,7 @@ Directories::Directories() : Gtk::ListViewText(1) {
menu_root_item_new_folder.signal_activate().connect(new_folder_function); menu_root_item_new_folder.signal_activate().connect(new_folder_function);
menu_root.append(menu_root_item_new_folder); menu_root.append(menu_root_item_new_folder);
menu.append(menu_item_separator); menu.append(menu_item_new_separator);
menu_item_rename.set_label("Rename"); menu_item_rename.set_label("Rename");
menu_item_rename.signal_activate().connect([this] { menu_item_rename.signal_activate().connect([this] {
@ -468,6 +468,28 @@ Directories::Directories() : Gtk::ListViewText(1) {
}); });
menu.append(menu_item_delete); menu.append(menu_item_delete);
menu.append(menu_item_open_separator);
menu_root.append(menu_root_item_separator);
auto open_label = "Open With Default Application";
auto open_function = [this] {
if(menu_popup_row_path.empty())
return;
#ifdef __APPLE__
Terminal::get().async_process("open " + menu_popup_row_path.string(), "", nullptr, true);
#else
Terminal::get().async_process("xdg-open " + menu_popup_row_path.string(), "", nullptr, true);
#endif
};
menu_item_open.set_label(open_label);
menu_item_open.signal_activate().connect(open_function);
menu.append(menu_item_open);
menu_root_item_open.set_label(open_label);
menu_root_item_open.signal_activate().connect(open_function);
menu_root.append(menu_root_item_open);
menu.show_all(); menu.show_all();
menu.accelerate(*this); menu.accelerate(*this);

6
src/directories.hpp

@ -87,11 +87,15 @@ private:
Gtk::Menu menu; Gtk::Menu menu;
Gtk::MenuItem menu_item_new_file; Gtk::MenuItem menu_item_new_file;
Gtk::MenuItem menu_item_new_folder; Gtk::MenuItem menu_item_new_folder;
Gtk::SeparatorMenuItem menu_item_separator; Gtk::SeparatorMenuItem menu_item_new_separator;
Gtk::MenuItem menu_item_rename; Gtk::MenuItem menu_item_rename;
Gtk::MenuItem menu_item_delete; Gtk::MenuItem menu_item_delete;
Gtk::SeparatorMenuItem menu_item_open_separator;
Gtk::MenuItem menu_item_open;
Gtk::Menu menu_root; Gtk::Menu menu_root;
Gtk::MenuItem menu_root_item_new_file; Gtk::MenuItem menu_root_item_new_file;
Gtk::MenuItem menu_root_item_new_folder; Gtk::MenuItem menu_root_item_new_folder;
Gtk::SeparatorMenuItem menu_root_item_separator;
Gtk::MenuItem menu_root_item_open;
boost::filesystem::path menu_popup_row_path; boost::filesystem::path menu_popup_row_path;
}; };

Loading…
Cancel
Save