From 9d5befc196f08fe7c314136e7007d8929829551e Mon Sep 17 00:00:00 2001 From: James Crook Date: Sun, 31 May 2020 12:58:59 +0100 Subject: [PATCH] Bug 2408 - A region label gets split on inserting audio when Sync-lock is turned on --- src/LabelTrack.cpp | 18 ++++++++++++++++++ src/LabelTrack.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 7fc52314b..d3d6842bd 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -846,6 +846,24 @@ bool LabelTrack::Repeat(double t0, double t1, int n) return true; } +void LabelTrack::SyncLockAdjust(double oldT1, double newT1) +{ + if (newT1 > oldT1) { + // Insert space within the track + + if (oldT1 > GetEndTime()) + return; + + //Clear(oldT1, newT1); + ShiftLabelsOnInsert(newT1 - oldT1, oldT1); + } + else if (newT1 < oldT1) { + // Remove from the track + Clear(newT1, oldT1); + } +} + + void LabelTrack::Silence(double t0, double t1) { int len = mLabels.size(); diff --git a/src/LabelTrack.h b/src/LabelTrack.h index c4b99940f..aff64535a 100644 --- a/src/LabelTrack.h +++ b/src/LabelTrack.h @@ -123,6 +123,7 @@ public: void Clear(double t0, double t1) override; void Paste(double t, const Track * src) override; bool Repeat(double t0, double t1, int n); + void SyncLockAdjust(double oldT1, double newT1) override; void Silence(double t0, double t1) override; void InsertSilence(double t, double len) override;