summaryrefslogtreecommitdiff
path: root/gtk2_ardour/missing_file_dialog.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/missing_file_dialog.cc')
-rw-r--r--gtk2_ardour/missing_file_dialog.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/gtk2_ardour/missing_file_dialog.cc b/gtk2_ardour/missing_file_dialog.cc
index bc14b410c8..89ef01c372 100644
--- a/gtk2_ardour/missing_file_dialog.cc
+++ b/gtk2_ardour/missing_file_dialog.cc
@@ -35,6 +35,7 @@ using namespace PBD;
MissingFileDialog::MissingFileDialog (Session* s, const std::string& path, DataType type)
: ArdourDialog (_("Missing File"), true, false)
, filetype (type)
+ , is_absolute_path (Glib::path_is_absolute (path))
, chooser (_("Select a folder to search"), FILE_CHOOSER_ACTION_SELECT_FOLDER)
, use_chosen (_("Add chosen folder to search path, and try again"))
, choice_group (use_chosen.get_group())
@@ -122,6 +123,12 @@ MissingFileDialog::MissingFileDialog (Session* s, const std::string& path, DataT
}
void
+MissingFileDialog::set_absolute ()
+{
+ _session->set_missing_file_replacement (chooser.get_filename ());
+}
+
+void
MissingFileDialog::add_chosen ()
{
string str;
@@ -167,7 +174,11 @@ int
MissingFileDialog::get_action ()
{
if (use_chosen.get_active ()) {
- add_chosen ();
+ if (is_absolute_path) {
+ set_absolute ();
+ } else {
+ add_chosen ();
+ }
return 0;
}