diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-07-08 00:53:06 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-07-08 00:53:13 -0400 |
commit | fcabd5d8ee172e9d27423864448902ad99634ac5 (patch) | |
tree | 5c20f5dd6cc3c285bd4eb5f849796b95665f0243 /gtk2_ardour | |
parent | d3e3f5f0058f45825b46abf731ece39fc416efa0 (diff) |
initial implementation of "bring all media into session folder". Incomplete but basically functional for audio files
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 3 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 36 |
4 files changed, 46 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index 98e2174164..1b32529c3a 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -25,10 +25,11 @@ <menuitem action='CloseVideo'/> <menu name='Export' action='Export'> - <menuitem action='ExportAudio'/> + <menuitem action='ExportAudio'/> <menuitem action='StemExport'/> <menuitem action='ExportVideo'/> </menu> + <menuitem action='bring-into-session'/> <menu name='Cleanup' action='Cleanup'> <menuitem action='CleanupUnused'/> <menuitem action='FlushWastebasket'/> diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 5499de9771..44092069f0 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2099,6 +2099,10 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD TimeAxisView* _stepping_axis_view; void zoom_vertical_modifier_released(); + void bring_in_callback (Gtk::Label*, uint32_t n, uint32_t total, std::string name); + void update_bring_in_message (Gtk::Label* label, uint32_t n, uint32_t total, std::string name); + void bring_all_sources_into_session (); + friend class Drag; friend class RegionDrag; friend class RegionMoveDrag; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 6fea7a1770..31f368684b 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -701,6 +701,10 @@ Editor::register_actions () act = ActionManager::register_action (editor_actions, X_("importFromSession"), _("Import From Session"), sigc::mem_fun(*this, &Editor::session_import_dialog)); ActionManager::write_sensitive_actions.push_back (act); + + act = ActionManager::register_action (editor_actions, X_("bring-into-session"), _("Bring all media into session folder"), sigc::mem_fun(*this, &Editor::bring_all_sources_into_session)); + ActionManager::write_sensitive_actions.push_back (act); + ActionManager::register_toggle_action (editor_actions, X_("ToggleSummary"), _("Show Summary"), sigc::mem_fun (*this, &Editor::set_summary)); ActionManager::register_toggle_action (editor_actions, X_("ToggleGroupTabs"), _("Show Group Tabs"), sigc::mem_fun (*this, &Editor::set_group_tabs)); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 9774efb853..97d3780c96 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -7045,3 +7045,39 @@ Editor::unlock () start_lock_event_timing (); } } + +void +Editor::bring_in_callback (Gtk::Label* label, uint32_t n, uint32_t total, string name) +{ + Gtkmm2ext::UI::instance()->call_slot (invalidator (*this), boost::bind (&Editor::update_bring_in_message, this, label, n, total, name)); +} + +void +Editor::update_bring_in_message (Gtk::Label* label, uint32_t n, uint32_t total, string name) +{ + label->set_text (string_compose ("Copying %1, %2 of %3", name, n, total)); + Gtkmm2ext::UI::instance()->flush_pending (); +} + +void +Editor::bring_all_sources_into_session () +{ + if (!_session) { + return; + } + + Gtk::Label msg; + ArdourDialog w (_("Moving embedded files into session folder")); + w.get_vbox()->pack_start (msg); + w.present (); + + /* flush all pending GUI events because we're about to start copying + * files + */ + + Gtkmm2ext::UI::instance()->flush_pending (); + + cerr << " Do it\n"; + + _session->bring_all_sources_into_session (boost::bind (&Editor::bring_in_callback, this, &msg, _1, _2, _3)); +} |