summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-09-20 19:46:49 +0200
committerRobin Gareus <robin@gareus.org>2016-09-20 19:52:56 +0200
commit5232e0f2aff7cec5b5842aa414c71d8119e70e9f (patch)
treed87676d593eeb772e3b90a4fe4e7e97bda3c9ed8 /gtk2_ardour/ardour_ui.cc
parent20ebf10ba3d90df115695bc7b3872865430cbfdb (diff)
GUI support to archive session
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r--gtk2_ardour/ardour_ui.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 7a59569254..46325d3ab6 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -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"
@@ -2699,6 +2700,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)
{
char timebuf[128];