diff options
author | Carl Hetherington <carl@carlh.net> | 2010-10-28 17:09:32 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-10-28 17:09:32 +0000 |
commit | 6f9e9ad23e98ac1b3f52065ad53641cbf4c38f22 (patch) | |
tree | 9db23782df87668152fbdf6f16a03651733ec511 /gtk2_ardour | |
parent | d731e4dba1109ba641cea132c004dad71cbc4268 (diff) |
Make normalize cancel button work.
git-svn-id: svn://localhost/ardour2/branches/3.0@7935 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/normalize_dialog.cc | 10 | ||||
-rw-r--r-- | gtk2_ardour/normalize_dialog.h | 1 |
3 files changed, 20 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index b03df00cec..bce0e5c475 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -4504,8 +4504,6 @@ Editor::normalize_region () return; } - begin_reversible_command (_("normalize")); - set_canvas_cursor (wait_cursor); gdk_flush (); @@ -4522,12 +4520,21 @@ Editor::normalize_region () if (arv) { dialog.descend (1.0 / regions); double const a = arv->audio_region()->maximum_amplitude (&dialog); + + if (a == -1) { + /* the user cancelled the operation */ + set_canvas_cursor (current_canvas_cursor); + return; + } + max_amps.push_back (a); max_amp = max (max_amp, a); dialog.ascend (); } } + begin_reversible_command (_("normalize")); + list<double>::const_iterator a = max_amps.begin (); for (RegionSelection::iterator r = rs.begin(); r != rs.end(); ++r) { diff --git a/gtk2_ardour/normalize_dialog.cc b/gtk2_ardour/normalize_dialog.cc index 9a34c3a4bb..716bfa7c39 100644 --- a/gtk2_ardour/normalize_dialog.cc +++ b/gtk2_ardour/normalize_dialog.cc @@ -65,6 +65,8 @@ NormalizeDialog::NormalizeDialog (bool more_than_one) add_button (Stock::CANCEL, RESPONSE_CANCEL); add_button (_("Normalize"), RESPONSE_ACCEPT); + + signal_response().connect (sigc::mem_fun (*this, &NormalizeDialog::button_clicked)); } bool @@ -96,3 +98,11 @@ NormalizeDialog::run () _last_normalization_value = target (); return r; } + +void +NormalizeDialog::button_clicked (int r) +{ + if (r == RESPONSE_CANCEL) { + cancel (); + } +} diff --git a/gtk2_ardour/normalize_dialog.h b/gtk2_ardour/normalize_dialog.h index fec46dbd08..1cb1ae1cb5 100644 --- a/gtk2_ardour/normalize_dialog.h +++ b/gtk2_ardour/normalize_dialog.h @@ -37,6 +37,7 @@ public: private: void update_progress_gui (float); + void button_clicked (int); Gtk::RadioButton* _normalize_individually; Gtk::SpinButton* _spin; |