From c5b97e70befa4a755feafdd50557562a883e681d Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 1 Jun 2016 23:54:54 +0200 Subject: add Open Target Folder button to Export Dialog --- gtk2_ardour/export_filename_selector.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gtk2_ardour/export_filename_selector.cc') diff --git a/gtk2_ardour/export_filename_selector.cc b/gtk2_ardour/export_filename_selector.cc index fd41171925..317e52b605 100644 --- a/gtk2_ardour/export_filename_selector.cc +++ b/gtk2_ardour/export_filename_selector.cc @@ -20,6 +20,7 @@ #include +#include "pbd/openuri.h" #include "export_filename_selector.h" #include "i18n.h" @@ -36,6 +37,7 @@ ExportFilenameSelector::ExportFilenameSelector () : path_label (_("Folder:"), Gtk::ALIGN_LEFT), browse_button (_("Browse")), + open_button (_("Open Folder")), example_filename_label ("", Gtk::ALIGN_LEFT), _require_timespan (false) @@ -61,6 +63,7 @@ ExportFilenameSelector::ExportFilenameSelector () : path_hbox.pack_start (path_label, false, false, 3); path_hbox.pack_start (path_entry, true, true, 3); path_hbox.pack_start (browse_button, false, false, 3); + path_hbox.pack_start (open_button, false, false, 3); // maybe Mixbus only ? path_entry.set_activates_default (); @@ -104,6 +107,7 @@ ExportFilenameSelector::ExportFilenameSelector () : revision_spinbutton.signal_value_changed().connect (sigc::mem_fun (*this, &ExportFilenameSelector::change_revision_value)); browse_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportFilenameSelector::open_browse_dialog)); + open_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportFilenameSelector::open_folder)); } ExportFilenameSelector::~ExportFilenameSelector () @@ -366,6 +370,18 @@ ExportFilenameSelector::change_revision_value () CriticalSelectionChanged(); } +void +ExportFilenameSelector::open_folder () +{ + const std::string& dir (path_entry.get_text()); + if (!Glib::file_test (dir, Glib::FILE_TEST_IS_DIR|Glib::FILE_TEST_EXISTS)) { + Gtk::MessageDialog msg (string_compose (_("%1: this is not a valid directory/folder."), dir)); + msg.run (); + return; + } + PBD::open_folder (dir); +} + void ExportFilenameSelector::open_browse_dialog () { -- cgit v1.2.3