GUI support to archive session

This commit is contained in:
Robin Gareus 2016-09-20 19:46:49 +02:00
parent 20ebf10ba3
commit 5232e0f2af
5 changed files with 33 additions and 0 deletions

View File

@ -8,6 +8,7 @@
<separator/>
<menuitem action='Save'/>
<menuitem action='SaveAs'/>
<menuitem action='Archive'/>
#ifndef WINDOWS /* can't move open files. */
<menuitem action='Rename'/>
<menuitem action='SnapshotStay'/>

View File

@ -163,6 +163,7 @@ typedef uint64_t microseconds_t;
#include "route_params_ui.h"
#include "save_as_dialog.h"
#include "script_selector.h"
#include "session_archive_dialog.h"
#include "session_dialog.h"
#include "session_metadata_dialog.h"
#include "session_option_editor.h"
@ -2698,6 +2699,32 @@ ARDOUR_UI::save_session_as ()
}
}
void
ARDOUR_UI::archive_session ()
{
if (!_session) {
return;
}
time_t n;
time (&n);
Glib::DateTime gdt (Glib::DateTime::create_now_local (n));
SessionArchiveDialog sad;
sad.set_name (_session->name() + gdt.format ("_%F_%H%M%S"));
int response = sad.run ();
if (response != Gtk::RESPONSE_OK) {
sad.hide ();
return;
}
if (_session->archive_session (sad.target_folder(), sad.name(), &sad)) {
MessageDialog msg (_("Session Archiving failed."));
msg.run ();
}
}
void
ARDOUR_UI::quick_snapshot_session (bool switch_to_it)
{

View File

@ -684,6 +684,7 @@ private:
bool save_as_progress_update (float fraction, int64_t cnt, int64_t total, Gtk::Label* label, Gtk::ProgressBar* bar);
void save_session_as ();
void archive_session ();
void rename_session ();
int create_mixer ();

View File

@ -208,6 +208,9 @@ ARDOUR_UI::install_actions ()
act = global_actions.register_action (main_actions, X_("SaveAs"), _("Save As..."), sigc::mem_fun(*this, &ARDOUR_UI::save_session_as));
ActionManager::session_sensitive_actions.push_back (act);
act = global_actions.register_action (main_actions, X_("Archive"), _("Archive..."), sigc::mem_fun(*this, &ARDOUR_UI::archive_session));
ActionManager::session_sensitive_actions.push_back (act);
act = global_actions.register_action (main_actions, X_("Rename"), _("Rename..."), sigc::mem_fun(*this, &ARDOUR_UI::rename_session));
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::write_sensitive_actions.push_back (act);

View File

@ -226,6 +226,7 @@ gtk2_ardour_sources = [
'selection.cc',
'selection_memento.cc',
'send_ui.cc',
'session_archive_dialog.cc',
'session_dialog.cc',
'session_import_dialog.cc',
'session_metadata_dialog.cc',