From b7adef8653c9d3cecb635eb1ce22f08269c8e490 Mon Sep 17 00:00:00 2001 From: David Lamhauge Date: Mon, 18 Mar 2019 11:52:07 +0100 Subject: [PATCH 1/4] Removed unnecessary check --- core_lib/src/managers/playbackmanager.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core_lib/src/managers/playbackmanager.cpp b/core_lib/src/managers/playbackmanager.cpp index 9cdbd8a4ea..7ba0d84811 100644 --- a/core_lib/src/managers/playbackmanager.cpp +++ b/core_lib/src/managers/playbackmanager.cpp @@ -187,8 +187,9 @@ void PlaybackManager::playFlipInBetween() int prev = layerMgr->currentLayer()->getPreviousKeyFramePosition(start); int next = layerMgr->currentLayer()->getNextKeyFramePosition(start); - if (layerMgr->currentLayer()->keyExists(prev) && - layerMgr->currentLayer()->keyExists(next)) + if (prev < start && next > start && + layerMgr->currentLayer()->keyExists(prev) && + layerMgr->currentLayer()->keyExists(next)) { mFlipList.clear(); mFlipList.append(prev); @@ -392,7 +393,7 @@ void PlaybackManager::timerTick() void PlaybackManager::flipTimerTick() { - int curr = editor()->currentFrame(); + int curr = mFlipList[0]; int pos = mFlipList.indexOf(curr); if (pos == mFlipList.count() - 1) { @@ -402,7 +403,7 @@ void PlaybackManager::flipTimerTick() else { editor()->scrubTo(mFlipList[pos + 1]); - mFlipList.removeAt(pos); + mFlipList.removeFirst(); } } From 27673c44c70f353109dc654d92d0eaf966b114fe Mon Sep 17 00:00:00 2001 From: David Lamhauge Date: Mon, 18 Mar 2019 12:43:54 +0100 Subject: [PATCH 2/4] Optimised timertick function --- core_lib/src/managers/playbackmanager.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core_lib/src/managers/playbackmanager.cpp b/core_lib/src/managers/playbackmanager.cpp index 7ba0d84811..41404b9329 100644 --- a/core_lib/src/managers/playbackmanager.cpp +++ b/core_lib/src/managers/playbackmanager.cpp @@ -393,16 +393,14 @@ void PlaybackManager::timerTick() void PlaybackManager::flipTimerTick() { - int curr = mFlipList[0]; - int pos = mFlipList.indexOf(curr); - if (pos == mFlipList.count() - 1) + if (mFlipList.count() < 2) { mFlipTimer->stop(); emit playStateChanged(false); } else { - editor()->scrubTo(mFlipList[pos + 1]); + editor()->scrubTo(mFlipList[1]); mFlipList.removeFirst(); } } From c9e1ba68adeeb98d380a3e3c8926d7af61a18fb4 Mon Sep 17 00:00:00 2001 From: David Lamhauge Date: Mon, 18 Mar 2019 16:00:52 +0100 Subject: [PATCH 3/4] Changed timing in flip inbetween slightly --- core_lib/src/managers/playbackmanager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core_lib/src/managers/playbackmanager.cpp b/core_lib/src/managers/playbackmanager.cpp index 41404b9329..a94f576e86 100644 --- a/core_lib/src/managers/playbackmanager.cpp +++ b/core_lib/src/managers/playbackmanager.cpp @@ -193,8 +193,10 @@ void PlaybackManager::playFlipInBetween() { mFlipList.clear(); mFlipList.append(prev); + mFlipList.append(prev); mFlipList.append(start); mFlipList.append(next); + mFlipList.append(next); mFlipList.append(start); } else From 0e041d98438c4ecca7d73c1bf1e15eafe61f85b9 Mon Sep 17 00:00:00 2001 From: David Lamhauge Date: Mon, 18 Mar 2019 16:34:06 +0100 Subject: [PATCH 4/4] Pressing on timeline dial escapes flipping --- core_lib/src/managers/playbackmanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core_lib/src/managers/playbackmanager.cpp b/core_lib/src/managers/playbackmanager.cpp index a94f576e86..180fbf20c4 100644 --- a/core_lib/src/managers/playbackmanager.cpp +++ b/core_lib/src/managers/playbackmanager.cpp @@ -395,9 +395,10 @@ void PlaybackManager::timerTick() void PlaybackManager::flipTimerTick() { - if (mFlipList.count() < 2) + if (mFlipList.count() < 2 || editor()->currentFrame() != mFlipList[0]) { mFlipTimer->stop(); + editor()->scrubTo(mFlipList.last()); emit playStateChanged(false); } else