diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index dd5cc215df..f7965c1110 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -4603,3 +4603,18 @@ ARDOUR_UI::do_engine_setup (framecnt_t desired_sample_rate) return 0; } + +void +ARDOUR_UI::open_media_folder () +{ + if (!_session) { + return; + } + + //dbg_msg ("ARDOUR_UI::open_media_folder () : \n" + _session->session_directory ().sources_root ()); +#if defined (PLATFORM_WINDOWS) + ShellExecute (NULL, "open", _session->session_directory ().sources_root ().c_str (), NULL, NULL, SW_SHOW); +#elif defined (__APPLE__) +#endif + //dbg_msg ("ARDOUR_UI::open_media_folder () : \n" + _session->session_directory ().sources_root ()); +} diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 1581c429f3..2e62eef7c2 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -148,6 +148,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void launch_reference (); void show_about (); void hide_about (); + void open_media_folder (); void idle_load (const std::string& path); void finish(); diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 34a48cb4e2..fe755c524d 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -243,7 +243,10 @@ ARDOUR_UI::setup_transport () act = ActionManager::get_action (X_("Common"), X_("toggle-meterbridge")); editor->get_waves_button ("meter_bridge_on_button").set_related_action (act); - update_output_operation_mode_buttons(); + act = ActionManager::get_action (X_("Common"), X_("OpenMediaFolder")); + editor->get_waves_button ("media_button").set_related_action (act); + + update_output_operation_mode_buttons(); transport_base.set_name ("TransportBase"); transport_base.add (transport_hbox); diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 824477cae8..b86620ed87 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -220,6 +220,8 @@ ARDOUR_UI::install_actions () ActionManager::register_action (common_actions, X_("Manual"), S_("Help|Manual"), mem_fun(*this, &ARDOUR_UI::launch_manual)); ActionManager::register_action (common_actions, X_("Reference"), _("Reference"), mem_fun(*this, &ARDOUR_UI::launch_reference)); + ActionManager::register_action (common_actions, X_("OpenMediaFolder"), _("OpenMediaFolder"), mem_fun(*this, &ARDOUR_UI::open_media_folder)); + act = ActionManager::register_action (common_actions, X_("Save"), _("Save"), sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::save_state), string(""), false)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::write_sensitive_actions.push_back (act);