Keep Dialogs which report process around.

Since 5.8-245-g3e43585fa, a response hides the dialog Window
in ArdourDialog::on_response (to prevent dialogs windows staying
around unresponsively while Ardour does background work).
This logic does not apply to Dialog Windows which implement
ProgressReporter or support dialog responses other than OK, Close.
This commit is contained in:
Robin Gareus 2017-04-20 19:03:52 +02:00
parent b6c222555f
commit 39c2b544f0
8 changed files with 32 additions and 0 deletions

View file

@ -64,6 +64,10 @@ class ExportDialog : public ArdourDialog, public PBD::ScopedConnectionList
protected: 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::ExportHandler> HandlerPtr;
typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr; typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr;

View file

@ -189,6 +189,10 @@ public:
ExportReport (const std::string & title, const ARDOUR::AnalysisResults & ar); ExportReport (const std::string & title, const ARDOUR::AnalysisResults & ar);
int run (); int run ();
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
void init (const ARDOUR::AnalysisResults &, bool); void init (const ARDOUR::AnalysisResults &, bool);
void draw_waveform (Cairo::RefPtr<Cairo::ImageSurface>& wave, void draw_waveform (Cairo::RefPtr<Cairo::ImageSurface>& wave,

View file

@ -51,6 +51,10 @@ class ExportVideoDialog : public ArdourDialog , public PBD::ScopedConnectionList
XMLNode& get_state (); XMLNode& get_state ();
void set_state (const XMLNode &); void set_state (const XMLNode &);
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
TimeSelection export_range; TimeSelection export_range;

View file

@ -37,6 +37,10 @@ public:
double target_rms () const; double target_rms () const;
int run (); int run ();
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
void update_progress_gui (float); void update_progress_gui (float);
void button_clicked (int); void button_clicked (int);

View file

@ -45,6 +45,10 @@ public:
void set_encode_option (ARDOUR::Session::ArchiveEncode); void set_encode_option (ARDOUR::Session::ArchiveEncode);
void set_only_used_sources (bool); void set_only_used_sources (bool);
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
Gtk::FileChooserButton target_folder_selector; Gtk::FileChooserButton target_folder_selector;
Gtk::Entry name_entry; Gtk::Entry name_entry;

View file

@ -49,6 +49,10 @@ public:
ARDOUR::framecnt_t minimum_length () const; ARDOUR::framecnt_t minimum_length () const;
ARDOUR::framecnt_t fade_length () const; ARDOUR::framecnt_t fade_length () const;
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
void create_waves (); void create_waves ();
void canvas_allocation (Gtk::Allocation &); void canvas_allocation (Gtk::Allocation &);

View file

@ -74,6 +74,10 @@ class TimeFXDialog : public ArdourDialog, public ProgressReporter
void start_updates (); void start_updates ();
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
ARDOUR::framecnt_t original_length; ARDOUR::framecnt_t original_length;
Gtk::Adjustment pitch_octave_adjustment; Gtk::Adjustment pitch_octave_adjustment;

View file

@ -50,6 +50,10 @@ class TranscodeVideoDialog : public ArdourDialog , public PBD::ScopedConnectionL
VtlTranscodeOption import_option (); VtlTranscodeOption import_option ();
bool detect_ltc () { return ltc_detect.get_active (); } bool detect_ltc () { return ltc_detect.get_active (); }
void on_response (int response_id) {
Gtk::Dialog::on_response (response_id);
}
private: private:
void on_show (); void on_show ();
void open_browse_dialog (); void open_browse_dialog ();