diff options
author | Johannes Mueller <github@johannes-mueller.org> | 2017-07-12 17:34:22 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-15 11:37:15 +0200 |
commit | 0da2d7bf8af5e7cd0d15f4c1f8cbbd99a23cd186 (patch) | |
tree | 112b20b497fc7a650be1233f5fb80eb225135588 /gtk2_ardour/template_dialog.cc | |
parent | 46501da2201e1d7284e8196fbc55fc36b07b37e0 (diff) |
Inflate template archives rather in `.config/ardour5/` than in ...
`.config/ardour5/(templates|route_templates)`.
We put as toplevel directory of the archive `templates` or
`route_templates`. Then no matter if the user imports a session template or a
route template archives, we always put them into the correct folder.
As now the user can also import route templates while the
SessionTemplateManager is visible and vice versa, we need to signal the
successful import to the corresponding template manager. Therfor we introduce
the signal TemplatesImported.
Diffstat (limited to 'gtk2_ardour/template_dialog.cc')
-rw-r--r-- | gtk2_ardour/template_dialog.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gtk2_ardour/template_dialog.cc b/gtk2_ardour/template_dialog.cc index 4b3b9ca9a4..daba8bdd7f 100644 --- a/gtk2_ardour/template_dialog.cc +++ b/gtk2_ardour/template_dialog.cc @@ -36,6 +36,9 @@ #include "pbd/i18n.h" #include "pbd/xml++.h" +#include "gtkmm2ext/gui_thread.h" + +#include "ardour/filesystem_paths.h" #include "ardour/template_utils.h" #include "template_dialog.h" @@ -64,6 +67,9 @@ TemplateDialog::TemplateDialog () session_tm->init (); route_tm->init (); + + session_tm->TemplatesImported.connect (*this, invalidator (*this), boost::bind (&RouteTemplateManager::init, route_tm), gui_context ()); + route_tm->TemplatesImported.connect (*this, invalidator (*this), boost::bind (&SessionTemplateManager::init, session_tm), gui_context ()); } TemplateManager::TemplateManager () @@ -260,7 +266,7 @@ TemplateManager::export_all_templates () return; } - PBD::copy_recurse (templates_dir (), tmpdir); + PBD::copy_recurse (templates_dir (), Glib::build_filename (tmpdir, Glib::path_get_basename (templates_dir ()))); vector<string> files; PBD::find_files_matching_regex (files, tmpdir, string ("\\.template$"), /* recurse = */ true); @@ -315,17 +321,12 @@ TemplateManager::import_template_set () return; } - if (!g_file_test (templates_dir().c_str(), G_FILE_TEST_IS_DIR)) { - cout << "making " << templates_dir() << endl; - g_mkdir (templates_dir().c_str(), 0755); - } - _current_action = _("Importing templates"); FileArchive ar (dialog.get_filename ()); PBD::ScopedConnectionList progress_connection; ar.progress.connect_same_thread (progress_connection, boost::bind (&_set_progress, this, _1, _2)); - ar.inflate (templates_dir()); + ar.inflate (user_config_directory ()); vector<string> files; PBD::find_files_matching_regex (files, templates_dir (), string ("\\.template$"), /* recurse = */ true); @@ -346,6 +347,7 @@ TemplateManager::import_template_set () } init (); + TemplatesImported (); /* emit signal */ } bool |