X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_dialog.h;h=835c220c2331f1b7d9a0697bc7aa68da0a03525f;hb=6ee23029a338951705c589be6c61ab52099758b6;hp=5a1d7839caaddf180ac6ce317b6eedbbbb046a2c;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/export_dialog.h b/gtk2_ardour/export_dialog.h index 5a1d7839ca..835c220c23 100644 --- a/gtk2_ardour/export_dialog.h +++ b/gtk2_ardour/export_dialog.h @@ -21,9 +21,9 @@ #ifndef __export_dialog_h__ #define __export_dialog_h__ -#include +#include +#include -#include "ardour/export_handler.h" #include "ardour/export_profile_manager.h" #include "public_editor.h" @@ -35,10 +35,9 @@ #include -#include "i18n.h" - namespace ARDOUR { class ExportStatus; + class ExportHandler; } class ExportTimespanSelector; @@ -48,7 +47,7 @@ class ExportDialog : public ArdourDialog { public: - explicit ExportDialog (PublicEditor & editor, Glib::ustring title = _("Export")); + ExportDialog (PublicEditor & editor, std::string title, std::string xml_node_name); ~ExportDialog (); void set_session (ARDOUR::Session* s); @@ -66,6 +65,7 @@ class ExportDialog : public ArdourDialog { typedef boost::shared_ptr HandlerPtr; typedef boost::shared_ptr ManagerPtr; + std::string xml_node_name; HandlerPtr handler; ManagerPtr profile_manager; @@ -75,10 +75,13 @@ class ExportDialog : public ArdourDialog { // Must initialize all the shared_ptrs below virtual void init_components (); - boost::shared_ptr preset_selector; - boost::shared_ptr timespan_selector; - boost::shared_ptr channel_selector; - boost::shared_ptr file_notebook; + // Override if the channel selector should not be grown + virtual bool channel_selector_is_expandable() { return true; } + + boost::scoped_ptr preset_selector; + boost::scoped_ptr timespan_selector; + boost::scoped_ptr channel_selector; + boost::scoped_ptr file_notebook; Gtk::VBox warning_widget; Gtk::VBox progress_widget; @@ -90,11 +93,13 @@ class ExportDialog : public ArdourDialog { void init (); + void expanded_changed(); + void notify_errors (); void close_dialog (); void sync_with_manager (); - void update_warnings (); + void update_warnings_and_example_filename (); void show_conflicting_files (); void export_rt (); @@ -107,29 +112,34 @@ class ExportDialog : public ArdourDialog { PublicEditor & editor; StatusPtr status; + PBD::ScopedConnection abort_connection; /*** GUI components ***/ + Glib::RefPtr advanced_sizegroup; + Gtk::Expander * advanced; + /* Warning area */ Gtk::HBox warn_hbox; Gtk::Label warn_label; - Glib::ustring warn_string; + std::string warn_string; Gtk::HBox list_files_hbox; Gtk::Label list_files_label; Gtk::Button list_files_button; - Glib::ustring list_files_string; + std::string list_files_string; - void add_error (Glib::ustring const & text); - void add_warning (Glib::ustring const & text); + void add_error (std::string const & text); + void add_warning (std::string const & text); /* Progress bar */ - Gtk::Label progress_label; Gtk::ProgressBar progress_bar; sigc::connection progress_connection; + float previous_progress; // Needed for gtk bug workaround + /* Buttons */ Gtk::Button * cancel_button; @@ -141,12 +151,12 @@ class ExportDialog : public ArdourDialog { class ExportRangeDialog : public ExportDialog { public: - ExportRangeDialog (PublicEditor & editor, Glib::ustring range_id); + ExportRangeDialog (PublicEditor & editor, std::string range_id); private: void init_components (); - Glib::ustring range_id; + std::string range_id; }; class ExportSelectionDialog : public ExportDialog @@ -160,9 +170,12 @@ class ExportSelectionDialog : public ExportDialog class ExportRegionDialog : public ExportDialog { - public: + public: ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track); + protected: + virtual bool channel_selector_is_expandable() { return false; } + private: void init_gui (); void init_components (); @@ -171,4 +184,13 @@ class ExportRegionDialog : public ExportDialog ARDOUR::AudioTrack & track; }; +class StemExportDialog : public ExportDialog +{ + public: + StemExportDialog (PublicEditor & editor); + + private: + void init_components (); +}; + #endif /* __ardour_export_dialog_h__ */