diff options
author | Johannes Mueller <github@johannes-mueller.org> | 2017-08-18 19:53:46 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-08-20 21:09:30 +0200 |
commit | ae51d5fd4ebb90f782334ac0b4addc0c88e1629c (patch) | |
tree | 2409ee3fa7ad3c9c5f207324f44d0f67bf4befd4 /gtk2_ardour/ardour_ui.cc | |
parent | 908369ab3e31f82eae3734cfe61421912d2fba6a (diff) |
Let the user add a template description on saving session templates
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 46 |
1 files changed, 15 insertions, 31 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 8d931bbbd3..873d114cf2 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -169,6 +169,7 @@ typedef uint64_t microseconds_t; #include "route_time_axis.h" #include "route_params_ui.h" #include "save_as_dialog.h" +#include "save_template_dialog.h" #include "script_selector.h" #include "session_archive_dialog.h" #include "session_dialog.h" @@ -3158,60 +3159,43 @@ ARDOUR_UI::transport_rec_enable_blink (bool onoff) } } -bool -ARDOUR_UI::process_save_template_prompter (Prompter& prompter) +void +ARDOUR_UI::save_template_dialog_response (int response, SaveTemplateDialog* d) { - string name; + if (response == RESPONSE_ACCEPT) { + const string name = d->get_template_name (); + const string desc = d->get_description (); - prompter.get_result (name); - - if (name.length()) { - int failed = _session->save_template (name); + int failed = _session->save_template (name, desc); if (failed == -2) { /* file already exists. */ - bool overwrite = overwrite_file_dialog (prompter, + bool overwrite = overwrite_file_dialog (*d, _("Confirm Template Overwrite"), _("A template already exists with that name. Do you want to overwrite it?")); if (overwrite) { - _session->save_template (name, true); + _session->save_template (name, desc, true); } else { - return false; + d->show (); + return; } } } - - return true; + delete d; } void ARDOUR_UI::save_template () { - Prompter prompter (true); - if (!check_audioengine (_main_window)) { return; } - prompter.set_name (X_("Prompter")); - prompter.set_title (_("Save Template")); - prompter.set_prompt (_("Name for template:")); - prompter.set_initial_text(_session->name() + _("-template")); - prompter.add_button (Gtk::Stock::SAVE, Gtk::RESPONSE_ACCEPT); - - bool finished = false; - while (!finished) { - switch (prompter.run()) { - case RESPONSE_ACCEPT: - finished = process_save_template_prompter (prompter); - break; + SaveTemplateDialog* d = new SaveTemplateDialog (*_session); - default: - finished = true; - break; - } - } + d->signal_response().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::save_template_dialog_response), d)); + d->show (); } void ARDOUR_UI::manage_templates () |