summaryrefslogtreecommitdiff
path: root/gtk2_ardour/option_editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/option_editor.cc')
-rw-r--r--gtk2_ardour/option_editor.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc
index daf163eb08..a7fb86deda 100644
--- a/gtk2_ardour/option_editor.cc
+++ b/gtk2_ardour/option_editor.cc
@@ -29,6 +29,7 @@
#include "ardour/utils.h"
#include "pbd/configuration.h"
+#include "pbd/replace_all.h"
#include "public_editor.h"
#include "option_editor.h"
@@ -40,6 +41,13 @@ using namespace Gtk;
using namespace Gtkmm2ext;
using namespace ARDOUR;
+static string poor_mans_glob (string path)
+{
+ string copy = path;
+ replace_all (copy, "~", Glib::get_home_dir());
+ return copy;
+}
+
void
OptionEditorComponent::add_widget_to_page (OptionEditorPage* p, Gtk::Widget* w)
{
@@ -483,7 +491,7 @@ DirectoryOption::DirectoryOption (string const & i, string const & n, sigc::slot
, _set (s)
{
_file_chooser.set_action (Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER);
- _file_chooser.signal_file_set().connect (sigc::mem_fun (*this, &DirectoryOption::file_set));
+ _file_chooser.signal_selection_changed().connect (sigc::mem_fun (*this, &DirectoryOption::selection_changed));
_file_chooser.signal_current_folder_changed().connect (sigc::mem_fun (*this, &DirectoryOption::current_folder_set));
}
@@ -491,7 +499,7 @@ DirectoryOption::DirectoryOption (string const & i, string const & n, sigc::slot
void
DirectoryOption::set_state_from_config ()
{
- _file_chooser.set_current_folder (_get ());
+ _file_chooser.set_current_folder (poor_mans_glob(_get ()));
}
void
@@ -504,13 +512,13 @@ DirectoryOption::add_to_page (OptionEditorPage* p)
}
void
-DirectoryOption::file_set ()
+DirectoryOption::selection_changed ()
{
- _set (_file_chooser.get_filename ());
+ _set (poor_mans_glob(_file_chooser.get_filename ()));
}
void
DirectoryOption::current_folder_set ()
{
- _set (_file_chooser.get_current_folder ());
+ _set (poor_mans_glob(_file_chooser.get_current_folder ()));
}