View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006736 | ardour | bugs | public | 2016-01-17 01:55 | 2016-02-18 16:16 |
Reporter | colinf | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | 4.6 | ||||
Summary | 0006736: 'Insert/Remove Tme' gives no indication of what's gone wrong when an invalid time is entered | ||||
Description | If an invalid duration is entered into the clock in the insert/remove time dialogue, clicking on the 'insert/remove time' button will dismss the dialogue, but nothing else, with no indication to the user as to why not. | ||||
Additional Information | Ideally, the 'Insert/Remove Time' button should be disabled when the clock doesn't contain a valid non-zero duration, but that'd involve adding stuff to AudioClock to signal when the entered time is valid, which seems more complicated than necessary for this problem. | ||||
Tags | No tags attached. | ||||
|
commit-c7fb668 (2,999 bytes)
From c7fb668fe90ad85bad8bfeeea0b387336d72214f Mon Sep 17 00:00:00 2001 From: Colin Fletcher <colin.m.fletcher@googlemail.com> Date: Sun, 17 Jan 2016 01:55:33 +0000 Subject: Add a simple check for valid duration in 'Insert/Remove Time' diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index cb67f1f..6bdf2fb 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -7374,7 +7374,7 @@ Editor::remove_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt, pl->shift (pos, -frames, true, ignore_music_glue); if (!in_command) { - begin_reversible_command (_("cut time")); + begin_reversible_command (_("remove time")); in_command = true; } XMLNode &after = pl->get_state(); @@ -7386,7 +7386,7 @@ Editor::remove_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt, RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*> (*x); if (rtav) { if (!in_command) { - begin_reversible_command (_("cut time")); + begin_reversible_command (_("remove time")); in_command = true; } rtav->route ()->shift (pos, -frames); @@ -7459,7 +7459,7 @@ Editor::remove_time (framepos_t pos, framecnt_t frames, InsertTimeOption opt, if (moved) { if (!in_command) { - begin_reversible_command (_("cut time")); + begin_reversible_command (_("remove time")); in_command = true; } XMLNode& after (_session->locations()->get_state()); diff --git a/gtk2_ardour/insert_remove_time_dialog.cc b/gtk2_ardour/insert_remove_time_dialog.cc index 851f57d..8620ba1 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 (); @@ -166,6 +168,17 @@ InsertRemoveTimeDialog::distance () const } 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 () { _move_glued_markers.set_sensitive (_move_markers.get_active ()); diff --git a/gtk2_ardour/insert_remove_time_dialog.h b/gtk2_ardour/insert_remove_time_dialog.h index 6fbb575..ea3b242 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; |
|
... and here's a slightly hacky patch to pop up an error if the user tries to insert or remove a zero-length or invalid time. |
|
committed in b9a3e33b - I hope it's an improvement. |
|
Just did a little bit of testing with nightly version 4.6.383 It is an improvement but I did notice that if I enter for instance the value 44.44.44.44 with the AudioClock set on Timecode mode then although the invalid duration dialog is displayed if I click 'OK' and go back to try and edit the time value(that has been reset to 00:00:00:00) it can no longer be edited. I have to cancel the dialog and re-launch it. |
|
Oh, yes, I see what you mean: I can reproduce this exactly. Oddly, it doesn't always do it: if I leave the clock set on 00:00:00:00 and click the 'Insert' button I can go back & edit the clock, likewise if I enter 44:44:44:44 but click on one of the other controls before clicking 'Insert'. I'll look into it: it's very likely I've done something daft. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-01-17 01:55 | colinf | New Issue | |
2016-01-17 01:57 | colinf | File Added: commit-c7fb668 | |
2016-01-17 01:59 | colinf | Note Added: 0017802 | |
2016-02-06 14:50 | colinf | Note Added: 0017887 | |
2016-02-06 14:50 | colinf | Status | new => feedback |
2016-02-18 04:31 | timbyr | Note Added: 0017968 | |
2016-02-18 04:32 | timbyr | Product Version | => 4.6 |
2016-02-18 16:16 | colinf | Note Added: 0017971 | |
2016-02-18 16:16 | colinf | Status | feedback => new |