aboutsummaryrefslogtreecommitdiff
path: root/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js')
-rw-r--r--js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js86
1 files changed, 49 insertions, 37 deletions
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
index 1afb9e5a..a1e320c4 100644
--- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
+++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
@@ -139,6 +139,28 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
139 } 139 }
140 }, 140 },
141 141
142 _selectedLayerID:{
143 value: false
144 },
145 selectedLayerID : {
146 get: function() {
147 return this._selectedLayerID;
148 },
149 set: function(newVal) {
150 if (newVal === false) {
151 // We are clearing the timeline, so just set the value and return.
152 this._selectedLayerID = newVal;
153 return;
154 }
155 if (newVal !== this._selectedLayerID) {
156 var selectIndex = this.getLayerIndexByID(newVal);
157 this._selectedLayerID = newVal;
158 this._captureSelection = true;
159 this.selectLayer(selectIndex, true);
160 }
161 }
162 },
163
142 millisecondsOffset:{ 164 millisecondsOffset:{
143 value:1000 165 value:1000
144 }, 166 },
@@ -374,14 +396,11 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
374 396
375 // Feed the new array of objects into the repetitions 397 // Feed the new array of objects into the repetitions
376 // and select the first layer. 398 // and select the first layer.
399 this.temparrLayers[0].layerData.isSelected = true;
400 this.temparrLayers[0].layerData._isFirstDraw = true;
401
377 this.arrLayers=this.temparrLayers; 402 this.arrLayers=this.temparrLayers;
378 403
379 // TODO: We need a better solution to this race condition than a timeout.
380 this._captureSelection = true;
381 var that = this;
382 setTimeout(function() {
383 that.selectLayer(0, true);
384 }, 1000)
385 } else { 404 } else {
386 // New document. Create default layer. 405 // New document. Create default layer.
387 this.createNewLayer(1); 406 this.createNewLayer(1);
@@ -397,31 +416,21 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
397 } else { 416 } else {
398 // we do have information stored. Use it. 417 // we do have information stored. Use it.
399 this._boolCacheArrays = false; 418 this._boolCacheArrays = false;
419 //var myIndex = 0;
420 for (var i = 0; i < this.application.ninja.currentDocument.tlArrLayers.length; i++) {
421 if ( this.application.ninja.currentDocument.tlArrLayers[i].layerData.isSelected === true ) {
422 this.application.ninja.currentDocument.tlArrLayers[i].layerData._isFirstDraw = true;
423 }
424 }
425
426
400 this.arrLayers = this.application.ninja.currentDocument.tlArrLayers; 427 this.arrLayers = this.application.ninja.currentDocument.tlArrLayers;
401 this.currentLayerNumber = this.application.ninja.currentDocument.tllayerNumber; 428 this.currentLayerNumber = this.application.ninja.currentDocument.tllayerNumber;
402 this.currentLayerSelected = this.application.ninja.currentDocument.tlCurrentLayerSelected; 429 this.currentLayerSelected = this.application.ninja.currentDocument.tlCurrentLayerSelected;
403 this.hashInstance = this.application.ninja.currentDocument.tlLayerHashTable; 430 this.hashInstance = this.application.ninja.currentDocument.tlLayerHashTable;
404 this.hashElementMapToLayer = this.application.ninja.currentDocument.tlElementHashTable; 431 this.hashElementMapToLayer = this.application.ninja.currentDocument.tlElementHashTable;
405 this.hashKey = this.application.ninja.currentDocument.hashKey; 432 this.hashKey = this.application.ninja.currentDocument.hashKey;
406 this._boolCacheArrays = true;
407
408 // Search through the arrLayers and select the layer that's already selected
409 var i = 0,
410 selectMe = 0,
411 arrLayersLength = this.arrLayers.length;
412 for (i = 0; i < arrLayersLength; i++) {
413 if (this.arrLayers[i].isSelected === true) {
414 selectMe = i;
415 }
416 }
417
418 433
419 this._captureSelection = true;
420 // TODO: Better solution than a timer.
421 var that = this;
422 setTimeout(function() {
423 that.selectLayer(selectMe, true);
424 }, 300)
425 } 434 }
426 } 435 }
427 }, 436 },
@@ -454,6 +463,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
454 this._firstTimeLoaded=true; 463 this._firstTimeLoaded=true;
455 this.end_hottext.value = 25; 464 this.end_hottext.value = 25;
456 this.updateTrackContainerWidth(); 465 this.updateTrackContainerWidth();
466 this.selectedLayerID = false;
457 467
458 // Clear the repetitions 468 // Clear the repetitions
459 if (this.arrLayers.length > 0) { 469 if (this.arrLayers.length > 0) {
@@ -464,9 +474,12 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
464 474
465 handleDocumentChange:{ 475 handleDocumentChange:{
466 value:function(event){ 476 value:function(event){
477 // Clear the timeline but not the cache
467 this._boolCacheArrays = false; 478 this._boolCacheArrays = false;
468 this.clearTimelinePanel(); 479 this.clearTimelinePanel();
469 this._boolCacheArrays = true; 480 this._boolCacheArrays = true;
481
482 // Rebind the document events for the new document context
470 this._bindDocumentEvents(); 483 this._bindDocumentEvents();
471 484
472 this.hashInstance = this.createLayerHashTable(); 485 this.hashInstance = this.createLayerHashTable();
@@ -673,6 +686,13 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
673 thingToPush.layerData.layerID = this.currentLayerNumber; 686 thingToPush.layerData.layerID = this.currentLayerNumber;
674 thingToPush.parentElementUUID = this.hashKey; 687 thingToPush.parentElementUUID = this.hashKey;
675 thingToPush.parentElement = this.application.ninja.currentSelectedContainer; 688 thingToPush.parentElement = this.application.ninja.currentSelectedContainer;
689 thingToPush.layerData.isSelected = true;
690 thingToPush.layerData._isFirstDraw = true;
691
692 for (var i = 0; i < this.arrLayers.length; i++) {
693 this.arrLayers[i].layerData.isSelected = false;
694 this.arrLayers[i].layerData._isFirstDraw = false;
695 }
676 696
677 if (!!this.layerRepetition.selectedIndexes) { 697 if (!!this.layerRepetition.selectedIndexes) {
678 // There is a selected layer, so we need to splice the new 698 // There is a selected layer, so we need to splice the new
@@ -699,14 +719,6 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
699 this._LayerUndoIndex = thingToPush.layerData.layerID; 719 this._LayerUndoIndex = thingToPush.layerData.layerID;
700 this._LayerUndoStatus = true; 720 this._LayerUndoStatus = true;
701 721
702 this._captureSelection = true;
703
704 // TODO: Find a better solution than a timout here.
705 var that = this;
706 setTimeout(function() {
707 that.selectLayer(indexToSelect, true);
708 }, 500);
709
710 } 722 }
711 723
712 } 724 }
@@ -859,7 +871,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
859 this.currentLayerSelected.layerData.elementsList.splice(length, 1); 871 this.currentLayerSelected.layerData.elementsList.splice(length, 1);
860 break; 872 break;
861 } 873 }
862 length--; 874 //length--;
863 } 875 }
864 } 876 }
865 }, 877 },
@@ -1008,15 +1020,15 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
1008 if(this.selectedKeyframes){ 1020 if(this.selectedKeyframes){
1009 this.deselectTweens(); 1021 this.deselectTweens();
1010 } 1022 }
1023
1011 for (i = 0; i < arrLayersLength; i++) { 1024 for (i = 0; i < arrLayersLength; i++) {
1012 if (i === layerIndex) { 1025 if (i === layerIndex) {
1013 this.arrLayers[i].isSelected = true; 1026 this.arrLayers[i].layerData.isSelected = true;
1014 } else { 1027 } else {
1015 this.arrLayers[i].isSelected = false; 1028 this.arrLayers[i].layerData.isSelected = false;
1016 } 1029 }
1017 } 1030 }
1018 1031
1019
1020 this.layerRepetition.selectedIndexes = [layerIndex]; 1032 this.layerRepetition.selectedIndexes = [layerIndex];
1021 this.currentLayerSelected = this.arrLayers[layerIndex]; 1033 this.currentLayerSelected = this.arrLayers[layerIndex];
1022 if(userSelection){ 1034 if(userSelection){