From dafd36fd189bf4a77e7bf4237b662a4d7b1ba537 Mon Sep 17 00:00:00 2001 From: rolux Date: Fri, 7 Feb 2014 13:41:56 +0000 Subject: [PATCH] edit panel: abort small timeline rendering when re-rendering --- static/js/editPanel.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/static/js/editPanel.js b/static/js/editPanel.js index a39e162a4..38052c41f 100644 --- a/static/js/editPanel.js +++ b/static/js/editPanel.js @@ -46,7 +46,6 @@ pandora.ui.editPanel = function() { }); } - // FIXME: not used below! function getSmallTimelineCanvas() { var fps = getSmallTimelineFPS(), width = Math.ceil(edit.duration * fps), @@ -59,10 +58,7 @@ pandora.ui.editPanel = function() { } function getSmallTimelineURL() { - var fps = getSmallTimelineFPS(), - width = Math.ceil(edit.duration * fps), - height = fps == 1 ? 16 : 64; - smallTimelineCanvas = Ox.$('').attr({width: width, height: height})[0]; + smallTimelineCanvas = getSmallTimelineCanvas(); smallTimelineContext = smallTimelineCanvas.getContext('2d'); return smallTimelineCanvas.toDataURL(); } @@ -311,6 +307,7 @@ pandora.ui.editPanel = function() { pandora.UI.set({videoSubtitles: data.subtitles}); }, timeline: function(data) { + updateSmallTimelineURL(); pandora.UI.set({videoTimeline: data.timeline}); }, toggleclips: function(data) { @@ -517,7 +514,8 @@ pandora.ui.editPanel = function() { function updateSmallTimelineURL() { var canvas = getSmallTimelineCanvas(), context = canvas.getContext('2d'), - fps = getSmallTimelineFPS(); + fps = getSmallTimelineFPS(), + timelineIteration = self.timelineIteration = Ox.uid(); Ox.serialForEach(edit.clips, function(clip) { var callback = Ox.last(arguments); pandora[ @@ -526,9 +524,13 @@ pandora.ui.editPanel = function() { var image = Ox.$('') .on({ load: function() { - context.drawImage(image, Math.floor(clip.position * fps), 0); - that.options({smallTimelineURL: canvas.toDataURL()}); - callback(); + if (timelineIteration == self.timelineIteration) { + context.drawImage(image, Math.floor(clip.position * fps), 0); + that.options({smallTimelineURL: canvas.toDataURL()}); + callback(); + } else { + callback(false); + } } }) .attr({