diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-07 20:35:59 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-07 20:35:59 +0000 |
commit | c1a10ef31f5df38a8e2d0501be6dd22c4d3372fc (patch) | |
tree | 0ff5ad21bf4653d3b30c94a08ea4adcf80af5735 /gtk2_ardour | |
parent | 84ed50fd8b03b79f489a6f299c3cab34d3288dab (diff) |
weak version of "Save As"
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@6323 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 30 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 6 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 8 |
4 files changed, 27 insertions, 18 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index 8aada68ce9..c4d8d4fbb7 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -8,6 +8,7 @@ <menuitem action='Close'/> <separator/> <menuitem action='Save'/> + <menuitem action='Save As'/> <menuitem action='Snapshot'/> <menuitem action='SaveTemplate'/> <separator/> diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index f3aff33872..cef6ed33f8 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1969,23 +1969,27 @@ ARDOUR_UI::name_io_setup (AudioEngine& engine, /** Ask the user for the name of a new shapshot and then take it. */ void -ARDOUR_UI::snapshot_session () +ARDOUR_UI::snapshot_session (bool switch_to_it) { ArdourPrompter prompter (true); string snapname; - char timebuf[128]; - time_t n; - struct tm local_time; - - time (&n); - localtime_r (&n, &local_time); - strftime (timebuf, sizeof(timebuf), "%FT%T", &local_time); prompter.set_name ("Prompter"); prompter.add_button (Gtk::Stock::SAVE, Gtk::RESPONSE_ACCEPT); prompter.set_title (_("Take Snapshot")); prompter.set_prompt (_("Name of New Snapshot")); - prompter.set_initial_text (timebuf); + + if (!switch_to_it) { + char timebuf[128]; + time_t n; + struct tm local_time; + + time (&n); + localtime_r (&n, &local_time); + strftime (timebuf, sizeof(timebuf), "%FT%T", &local_time); + + prompter.set_initial_text (timebuf); + } again: switch (prompter.run()) { @@ -2004,7 +2008,7 @@ ARDOUR_UI::snapshot_session () msg.run (); goto again; } - save_state (snapname); + save_state (snapname, switch_to_it); } break; @@ -2014,13 +2018,13 @@ ARDOUR_UI::snapshot_session () } void -ARDOUR_UI::save_state (const string & name) +ARDOUR_UI::save_state (const string & name, bool switch_to_it) { (void) save_state_canfail (name); } int -ARDOUR_UI::save_state_canfail (string name) +ARDOUR_UI::save_state_canfail (string name, bool switch_to_it) { if (session) { int ret; @@ -2029,7 +2033,7 @@ ARDOUR_UI::save_state_canfail (string name) name = session->snap_name(); } - if ((ret = session->save_state (name)) != 0) { + if ((ret = session->save_state (name, false, switch_to_it)) != 0) { return ret; } } diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 93e4b4bea9..798f1c0804 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -151,8 +151,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI int unload_session (bool hide_stuff = false); void close_session(); - int save_state_canfail (string state_name = ""); - void save_state (const string & state_name = ""); + int save_state_canfail (string state_name = "", bool switch_to_it = false); + void save_state (const string & state_name = "", bool switch_to_it = false); static double gain_to_slider_position (ARDOUR::gain_t g); static ARDOUR::gain_t slider_position_to_gain (double pos); @@ -589,7 +589,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI guint32 last_key_press_time; - void snapshot_session (); + void snapshot_session (bool switch_to_it); Mixer_UI *mixer; int create_mixer (); diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 123a78ac45..fc0fddbb8d 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -134,7 +134,11 @@ ARDOUR_UI::install_actions () /* </CMT Additions> */ - act = ActionManager::register_action (main_actions, X_("Snapshot"), _("Snapshot"), mem_fun(*this, &ARDOUR_UI::snapshot_session)); + act = ActionManager::register_action (main_actions, X_("Snapshot"), _("Snapshot"), bind (mem_fun(*this, &ARDOUR_UI::snapshot_session), false)); + ActionManager::session_sensitive_actions.push_back (act); + ActionManager::write_sensitive_actions.push_back (act); + + act = ActionManager::register_action (main_actions, X_("Save As"), _("Save As"), bind (mem_fun(*this, &ARDOUR_UI::snapshot_session), true)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::write_sensitive_actions.push_back (act); @@ -226,7 +230,7 @@ ARDOUR_UI::install_actions () ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (common_actions, X_("AddAudioBus"), _("Add Audio Bus"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_bus), 1, 1, 1)); ActionManager::session_sensitive_actions.push_back (act); - act = ActionManager::register_action (common_actions, X_("Save"), _("Save"), bind (mem_fun(*this, &ARDOUR_UI::save_state), string(""))); + act = ActionManager::register_action (common_actions, X_("Save"), _("Save"), bind (mem_fun(*this, &ARDOUR_UI::save_state), string(""), false)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::write_sensitive_actions.push_back (act); act = ActionManager::register_action (common_actions, X_("RemoveLastCapture"), _("Remove Last Capture"), mem_fun(*this, &ARDOUR_UI::remove_last_capture)); |