diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2008-10-11 10:14:51 +0000 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2008-10-11 10:14:51 +0000 |
commit | 98389f7da420ee205f6827b7df4db3ea0802f751 (patch) | |
tree | 28a28cf591b3d90a7eb60f422eee95e5ebfed6dc /gtk2_ardour/export_dialog.cc | |
parent | 01b1790c98f9ee6739681f1dc8fe529c3ca7160a (diff) |
Region export dialog: Make export channel and -selector polymorphic, add the region related classes and a dialog specialization
git-svn-id: svn://localhost/ardour2/branches/3.0@3915 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/export_dialog.cc')
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 7ae81a016a..86263c8d3f 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -45,8 +45,6 @@ ExportDialog::~ExportDialog () void ExportDialog::set_session (ARDOUR::Session* s) { - init (); - session = s; /* Init handler and profile manager */ @@ -55,6 +53,12 @@ ExportDialog::set_session (ARDOUR::Session* s) status = session->get_export_status (); profile_manager.reset (new ExportProfileManager (*session)); + /* Possibly init stuff in derived classes */ + + init (); + + /* Rest of session related initialization */ + preset_selector->set_manager (profile_manager); file_notebook->set_session_and_manager (session, profile_manager); @@ -163,7 +167,7 @@ ExportDialog::init_components () { preset_selector.reset (new ExportPresetSelector ()); timespan_selector.reset (new ExportTimespanSelectorMultiple ()); - channel_selector.reset (new ExportChannelSelector ()); + channel_selector.reset (new PortExportChannelSelector ()); file_notebook.reset (new ExportFileNotebook ()); } @@ -358,7 +362,7 @@ ExportRangeDialog::init_components () { preset_selector.reset (new ExportPresetSelector ()); timespan_selector.reset (new ExportTimespanSelectorSingle (range_id)); - channel_selector.reset (new ExportChannelSelector ()); + channel_selector.reset (new PortExportChannelSelector ()); file_notebook.reset (new ExportFileNotebook ()); } @@ -371,6 +375,23 @@ ExportSelectionDialog::init_components () { preset_selector.reset (new ExportPresetSelector ()); timespan_selector.reset (new ExportTimespanSelectorSingle (X_("selection"))); - channel_selector.reset (new ExportChannelSelector ()); + channel_selector.reset (new PortExportChannelSelector ()); + file_notebook.reset (new ExportFileNotebook ()); +} + +ExportRegionDialog::ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track) : + ExportDialog (editor, _("Export Region")), + region (region), + track (track) +{} + +void +ExportRegionDialog::init_components () +{ + Glib::ustring loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name()); + + preset_selector.reset (new ExportPresetSelector ()); + timespan_selector.reset (new ExportTimespanSelectorSingle (loc_id)); + channel_selector.reset (new RegionExportChannelSelector (region, track)); file_notebook.reset (new ExportFileNotebook ()); } |