summaryrefslogtreecommitdiff
path: root/gtk2_ardour/region_editor.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-06-17 09:26:40 +1000
committernick_m <mainsbridge@gmail.com>2015-06-17 09:54:23 +1000
commit44790ebff017173ff6a593c1278bbe6cbab3fa4b (patch)
treeda4dcd7064e961dc885677a1a011586b6b795c08 /gtk2_ardour/region_editor.cc
parentd019ee836ca70965e6b981b6bde2a77ad11cb98a (diff)
More _reversible_command() auditing in the gui.
- try to keep begin/commit pairs in the same file where possible.
Diffstat (limited to 'gtk2_ardour/region_editor.cc')
-rw-r--r--gtk2_ardour/region_editor.cc33
1 files changed, 22 insertions, 11 deletions
diff --git a/gtk2_ardour/region_editor.cc b/gtk2_ardour/region_editor.cc
index 16888fb688..e41e012ce6 100644
--- a/gtk2_ardour/region_editor.cc
+++ b/gtk2_ardour/region_editor.cc
@@ -270,33 +270,41 @@ RegionEditor::connect_editor_events ()
void
RegionEditor::position_clock_changed ()
{
- PublicEditor::instance().begin_reversible_command (_("change region start position"));
-
+ bool in_command = false;
boost::shared_ptr<Playlist> pl = _region->playlist();
if (pl) {
+ PublicEditor::instance().begin_reversible_command (_("change region start position"));
+ in_command = true;
+
_region->clear_changes ();
_region->set_position (position_clock.current_time());
_session->add_command(new StatefulDiffCommand (_region));
}
- PublicEditor::instance().commit_reversible_command ();
+ if (in_command) {
+ PublicEditor::instance().commit_reversible_command ();
+ }
}
void
RegionEditor::end_clock_changed ()
{
- PublicEditor::instance().begin_reversible_command (_("change region end position"));
-
+ bool in_command = false;
boost::shared_ptr<Playlist> pl = _region->playlist();
if (pl) {
+ PublicEditor::instance().begin_reversible_command (_("change region end position"));
+ in_command = true;
+
_region->clear_changes ();
_region->trim_end (end_clock.current_time());
_session->add_command(new StatefulDiffCommand (_region));
}
- PublicEditor::instance().commit_reversible_command ();
+ if (in_command) {
+ PublicEditor::instance().commit_reversible_command ();
+ }
end_clock.set (_region->position() + _region->length() - 1, true);
}
@@ -305,18 +313,21 @@ void
RegionEditor::length_clock_changed ()
{
framecnt_t frames = length_clock.current_time();
-
- PublicEditor::instance().begin_reversible_command (_("change region length"));
-
+ bool in_command = false;
boost::shared_ptr<Playlist> pl = _region->playlist();
if (pl) {
- _region->clear_changes ();
+ PublicEditor::instance().begin_reversible_command (_("change region length"));
+ in_command = true;
+
+ _region->clear_changes ();
_region->trim_end (_region->position() + frames - 1);
_session->add_command(new StatefulDiffCommand (_region));
}
- PublicEditor::instance().commit_reversible_command ();
+ if (in_command) {
+ PublicEditor::instance().commit_reversible_command ();
+ }
length_clock.set (_region->length());
}