summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/option_editor.cc18
-rw-r--r--gtk2_ardour/option_editor.h2
2 files changed, 14 insertions, 6 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 ()));
}
diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h
index ac768383ee..9ab8132d2c 100644
--- a/gtk2_ardour/option_editor.h
+++ b/gtk2_ardour/option_editor.h
@@ -624,7 +624,7 @@ public:
Gtk::Widget& tip_widget() { return _file_chooser; }
private:
- void file_set ();
+ void selection_changed ();
void current_folder_set ();
sigc::slot<std::string> _get; ///< slot to get the configuration variable's value