fixed bug where ripples re-added deleted clips

This commit is contained in:
itsmattkc
2019-04-06 21:13:27 +11:00
parent a0557dbba6
commit 4f246dba24
3 changed files with 26 additions and 2 deletions
+11
View File
@@ -195,6 +195,17 @@ Clip *Track::GetClipFromPoint(long point)
return nullptr;
}
bool Track::ContainsClip(Clip *c)
{
ClipPtr clip;
foreach (clip, clips_) {
if (clip.get() == c) {
return true;
}
}
return false;
}
Track *Track::Previous()
{
int index = Index();
+1
View File
@@ -67,6 +67,7 @@ public:
QVector<Clip*> GetSelectedClips(bool containing);
ClipPtr GetClipObjectFromRawPtr(Clip* c);
Clip* GetClipFromPoint(long point);
bool ContainsClip(Clip* c);
Track* Previous();
Track* Next();
+14 -2
View File
@@ -68,7 +68,13 @@ void MoveClipAction::doUndo() {
clip->set_timeline_out(old_out);
clip->set_clip_in(old_clip_in);
}
old_track->AddClip(clip);
// Move clip to the new track ONLY IF the old track currently contains this clip - a workaround to ensure this
// action doesn't accidentaly add a clip that it's not supposed to
if (new_track->ContainsClip(clip.get())) {
old_track->AddClip(clip);
}
done = false;
}
@@ -83,7 +89,13 @@ void MoveClipAction::doRedo() {
clip->set_timeline_out(new_out);
clip->set_clip_in(new_clip_in);
}
new_track->AddClip(clip);
// Move clip to the new track ONLY IF the old track currently contains this clip - a workaround to ensure this
// action doesn't accidentaly add a clip that it's not supposed to
if (old_track->ContainsClip(clip.get())) {
new_track->AddClip(clip);
}
done = true;
}
}