From b9a3e33bf74ad39555ef8072ab7e3eb68ddf3987 Mon Sep 17 00:00:00 2001 From: Colin Fletcher Date: Tue, 19 Jan 2016 19:34:41 +0000 Subject: Add a simple check for valid duration in 'Insert/Remove Time' --- gtk2_ardour/insert_remove_time_dialog.cc | 15 ++++++++++++++- gtk2_ardour/insert_remove_time_dialog.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/insert_remove_time_dialog.cc b/gtk2_ardour/insert_remove_time_dialog.cc index 851f57d1ba..8620ba18e5 100644 --- a/gtk2_ardour/insert_remove_time_dialog.cc +++ b/gtk2_ardour/insert_remove_time_dialog.cc @@ -96,7 +96,9 @@ InsertRemoveTimeDialog::InsertRemoveTimeDialog (PublicEditor& e, bool remove) get_vbox()->pack_start (*tempo_box); add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); - add_button (remove ? _("Remove time") : _("Insert time"), Gtk::RESPONSE_OK); + Gtk::Button *btn = manage (new Gtk::Button (remove ? _("Remove time") : _("Insert time"))); + btn->signal_clicked().connect (sigc::mem_fun(*this, &InsertRemoveTimeDialog::doit)); + get_action_area()->pack_start (*btn); show_all (); move_markers_toggled (); @@ -165,6 +167,17 @@ InsertRemoveTimeDialog::distance () const return _clock.current_duration (_editor.get_preferred_edit_position ()); } +void +InsertRemoveTimeDialog::doit () +{ + if (distance () == 0) { + Gtk::MessageDialog msg (*this, _("Invalid or zero duration entered. Please enter a valid duration")); + msg.run (); + return; + } + response (RESPONSE_OK); +} + void InsertRemoveTimeDialog::move_markers_toggled () { diff --git a/gtk2_ardour/insert_remove_time_dialog.h b/gtk2_ardour/insert_remove_time_dialog.h index 6fbb575513..ea3b24238e 100644 --- a/gtk2_ardour/insert_remove_time_dialog.h +++ b/gtk2_ardour/insert_remove_time_dialog.h @@ -38,6 +38,7 @@ public: private: void move_markers_toggled (); + void doit (); PublicEditor& _editor; Gtk::ComboBoxText _intersected_combo; -- cgit v1.2.3