NO-OP whitespace (updated GH PR #357)
[ardour.git] / gtk2_ardour / export_dialog.h
index 5c9e346f50c4bf8b731e29131f2de6adf09508dc..c45349f7c973ddedda692e2e3b51c33ed91d6ed2 100644 (file)
@@ -32,6 +32,7 @@
 #include "export_file_notebook.h"
 #include "export_preset_selector.h"
 #include "ardour_dialog.h"
+#include "soundcloud_export_selector.h"
 
 #include <gtkmm.h>
 
@@ -43,11 +44,12 @@ namespace ARDOUR {
 class ExportTimespanSelector;
 class ExportChannelSelector;
 
-class ExportDialog : public ArdourDialog {
+class ExportDialog : public ArdourDialog, public PBD::ScopedConnectionList
+{
 
   public:
 
-       ExportDialog (PublicEditor & editor, std::string title, std::string xml_node_name);
+       ExportDialog (PublicEditor & editor, std::string title, ARDOUR::ExportProfileManager::ExportType type);
        ~ExportDialog ();
 
        void set_session (ARDOUR::Session* s);
@@ -62,10 +64,14 @@ class ExportDialog : public ArdourDialog {
 
   protected:
 
+       void on_response (int response_id) {
+               Gtk::Dialog::on_response (response_id);
+       }
+
        typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
        typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr;
 
-       std::string     xml_node_name;
+       ARDOUR::ExportProfileManager::ExportType type;
        HandlerPtr      handler;
        ManagerPtr      profile_manager;
 
@@ -80,25 +86,29 @@ class ExportDialog : public ArdourDialog {
        boost::scoped_ptr<ExportChannelSelector>  channel_selector;
        boost::scoped_ptr<ExportFileNotebook>     file_notebook;
 
+       boost::shared_ptr<SoundcloudExportSelector> soundcloud_selector;
+
        Gtk::VBox                                 warning_widget;
        Gtk::VBox                                 progress_widget;
 
-       Gtk::Label *                              timespan_label;
-       Gtk::Label *                              channels_label;
+       /*** GUI components ***/
+       Gtk::Notebook export_notebook;
 
   private:
 
        void init ();
 
-       void notify_errors ();
+       void notify_errors (bool force = false);
        void close_dialog ();
 
        void sync_with_manager ();
-       void update_warnings ();
+       void update_warnings_and_example_filename ();
        void show_conflicting_files ();
 
-       void export_rt ();
-       void export_fw ();
+       void do_export ();
+
+       void update_realtime_selection ();
+       void parameter_changed (std::string const&);
 
        void show_progress ();
        gint progress_timeout ();
@@ -107,35 +117,36 @@ class ExportDialog : public ArdourDialog {
 
        PublicEditor &  editor;
        StatusPtr       status;
-       PBD::ScopedConnection abort_connection;
 
-       /*** GUI components ***/
+
 
        /* Warning area */
 
        Gtk::HBox           warn_hbox;
        Gtk::Label          warn_label;
-       std::string       warn_string;
+       std::string         warn_string;
 
        Gtk::HBox           list_files_hbox;
        Gtk::Label          list_files_label;
        Gtk::Button         list_files_button;
-       std::string       list_files_string;
+       std::string         list_files_string;
 
        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
+
+       void soundcloud_upload_progress(double total, double now, std::string title);
+
        /* Buttons */
 
        Gtk::Button *           cancel_button;
-       Gtk::Button *           rt_export_button;
-       Gtk::Button *           fast_export_button;
+       Gtk::Button *           export_button;
 
 };
 
@@ -146,8 +157,8 @@ class ExportRangeDialog : public ExportDialog
 
   private:
        void init_components ();
-        
-        std::string range_id;
+
+       std::string range_id;
 };
 
 class ExportSelectionDialog : public ExportDialog
@@ -176,7 +187,7 @@ class StemExportDialog : public ExportDialog
 {
   public:
        StemExportDialog (PublicEditor & editor);
-       
+
   private:
        void init_components ();
 };