diff options
Diffstat (limited to 'js/panels')
-rw-r--r-- | js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | 96 | ||||
-rwxr-xr-x | js/panels/components-panel.reel/components-panel.js | 56 |
2 files changed, 91 insertions, 61 deletions
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js index 7af88662..22991a82 100644 --- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js +++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | |||
@@ -112,6 +112,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
112 | return this._currentDocument; | 112 | return this._currentDocument; |
113 | }, | 113 | }, |
114 | set : function(value) { | 114 | set : function(value) { |
115 | // If it's the same document, do nothing. | ||
115 | if (value === this._currentDocument) { | 116 | if (value === this._currentDocument) { |
116 | return; | 117 | return; |
117 | } | 118 | } |
@@ -123,6 +124,9 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
123 | this._currentDocument = value; | 124 | this._currentDocument = value; |
124 | 125 | ||
125 | if(!value) { | 126 | if(!value) { |
127 | this._boolCacheArrays = false; | ||
128 | this.clearTimelinePanel(); | ||
129 | this._boolCacheArrays = true; | ||
126 | this.enablePanel(false); | 130 | this.enablePanel(false); |
127 | } else if(this._currentDocument.currentView === "design") { | 131 | } else if(this._currentDocument.currentView === "design") { |
128 | this._boolCacheArrays = false; | 132 | this._boolCacheArrays = false; |
@@ -131,9 +135,40 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
131 | 135 | ||
132 | // Rebind the document events for the new document context | 136 | // Rebind the document events for the new document context |
133 | this._bindDocumentEvents(); | 137 | this._bindDocumentEvents(); |
134 | 138 | ||
135 | // TODO: Fix the init function so that it can be called here instead of when container changes | 139 | // Initialize the timeline for the document. |
136 | // this.initTimelineForDocument(); | 140 | this.initTimelineForDocument(); |
141 | } | ||
142 | } | ||
143 | }, | ||
144 | |||
145 | _currentSelectedContainer: { | ||
146 | value: null | ||
147 | }, | ||
148 | currentSelectedContainer: { | ||
149 | get: function() { | ||
150 | return this._currentSelectedContainer; | ||
151 | }, | ||
152 | set: function(newVal) { | ||
153 | if(this._currentSelectedContainer !== newVal) { | ||
154 | this._currentSelectedContainer = newVal; | ||
155 | if (this._ignoreNextContainerChange === true) { | ||
156 | this._ignoreNextContainerChange = false; | ||
157 | return; | ||
158 | } | ||
159 | this.application.ninja.currentDocument.setLevel = true; | ||
160 | |||
161 | if(this._currentDocument.currentView === "design") { | ||
162 | this._boolCacheArrays = false; | ||
163 | this.clearTimelinePanel(); | ||
164 | this._boolCacheArrays = true; | ||
165 | |||
166 | // Rebind the document events for the new document context | ||
167 | this._bindDocumentEvents(); | ||
168 | |||
169 | // Initialize the timeline for the document. | ||
170 | this.initTimelineForDocument(); | ||
171 | } | ||
137 | } | 172 | } |
138 | } | 173 | } |
139 | }, | 174 | }, |
@@ -259,27 +294,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
259 | this.cacheTimeline(); | 294 | this.cacheTimeline(); |
260 | } | 295 | } |
261 | }, | 296 | }, |
262 | |||
263 | _currentSelectedContainer: { | ||
264 | value: null | ||
265 | }, | ||
266 | currentSelectedContainer: { | ||
267 | get: function() { | ||
268 | return this._currentSelectedContainer; | ||
269 | }, | ||
270 | set: function(newVal) { | ||
271 | if(this._currentSelectedContainer !== newVal) { | ||
272 | this._currentSelectedContainer = newVal; | ||
273 | 297 | ||
274 | this._boolCacheArrays = false; | ||
275 | this.clearTimelinePanel(); | ||
276 | this._boolCacheArrays = true; | ||
277 | |||
278 | // TODO: Fix the function so that we can remove this call here. | ||
279 | this.initTimelineForDocument(); | ||
280 | } | ||
281 | } | ||
282 | }, | ||
283 | 298 | ||
284 | _millisecondsOffset:{ | 299 | _millisecondsOffset:{ |
285 | value:1000 | 300 | value:1000 |
@@ -480,6 +495,14 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
480 | this.tl_configbutton.addEventListener("click", this.handleConfigButtonClick.bind(this), false); | 495 | this.tl_configbutton.addEventListener("click", this.handleConfigButtonClick.bind(this), false); |
481 | document.addEventListener("click", this.handleDocumentClick.bind(this), false); | 496 | document.addEventListener("click", this.handleDocumentClick.bind(this), false); |
482 | 497 | ||
498 | |||
499 | // Bind some bindings | ||
500 | Object.defineBinding(this, "currentSelectedContainer", { | ||
501 | boundObject:this.application.ninja, | ||
502 | boundObjectPropertyPath:"currentSelectedContainer", | ||
503 | oneway:true | ||
504 | }); | ||
505 | |||
483 | } | 506 | } |
484 | }, | 507 | }, |
485 | 508 | ||
@@ -688,14 +711,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
688 | this.playhead.addEventListener("mousedown", this.startPlayheadTracking.bind(this), false); | 711 | this.playhead.addEventListener("mousedown", this.startPlayheadTracking.bind(this), false); |
689 | this.playhead.addEventListener("mouseup", this.stopPlayheadTracking.bind(this), false); | 712 | this.playhead.addEventListener("mouseup", this.stopPlayheadTracking.bind(this), false); |
690 | this.time_markers.addEventListener("click", this.updatePlayhead.bind(this), false); | 713 | this.time_markers.addEventListener("click", this.updatePlayhead.bind(this), false); |
691 | 714 | ||
692 | // Bind some bindings | ||
693 | Object.defineBinding(this, "currentSelectedContainer", { | ||
694 | boundObject:this.application.ninja, | ||
695 | boundObjectPropertyPath:"currentSelectedContainer", | ||
696 | oneway:true | ||
697 | }); | ||
698 | |||
699 | // Start the panel out in disabled mode by default | 715 | // Start the panel out in disabled mode by default |
700 | // (Will be switched on later, if appropriate). | 716 | // (Will be switched on later, if appropriate). |
701 | this.enablePanel(false); | 717 | this.enablePanel(false); |
@@ -705,17 +721,17 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
705 | 721 | ||
706 | // Initialize the timeline for a document. | 722 | // Initialize the timeline for a document. |
707 | // Called when a document is opened (new or existing), or when documents are switched. | 723 | // Called when a document is opened (new or existing), or when documents are switched. |
724 | _ignoreNextContainerChange: { | ||
725 | value: true | ||
726 | }, | ||
708 | initTimelineForDocument:{ | 727 | initTimelineForDocument:{ |
709 | value:function () { | 728 | value:function () { |
710 | 729 | var myIndex; | |
711 | |||
712 | var myIndex, | ||
713 | boolAlreadyInitialized = false; | ||
714 | this.drawTimeMarkers(); | 730 | this.drawTimeMarkers(); |
715 | // Document switching | 731 | // Document switching |
716 | // Check to see if we have saved timeline information in the currentDocument. | 732 | // Check to see if we have saved timeline information in the currentDocument. |
717 | if ((typeof(this.application.ninja.currentDocument.isTimelineInitialized) === "undefined")) { | 733 | if ((typeof(this.application.ninja.currentDocument.isTimelineInitialized) === "undefined")) { |
718 | //console.log('TimelinePanel.initTimelineForDocument: new Document'); | 734 | // console.log('TimelinePanel.initTimelineForDocument: new Document'); |
719 | // No, we have no information stored. | 735 | // No, we have no information stored. |
720 | // This could mean we are creating a new file, OR are opening an existing file. | 736 | // This could mean we are creating a new file, OR are opening an existing file. |
721 | 737 | ||
@@ -739,10 +755,10 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
739 | // Draw the repetition. | 755 | // Draw the repetition. |
740 | this.arrLayers = this.temparrLayers; | 756 | this.arrLayers = this.temparrLayers; |
741 | this.currentLayerNumber = this.arrLayers.length; | 757 | this.currentLayerNumber = this.arrLayers.length; |
742 | boolAlreadyInitialized = true; | 758 | this._ignoreNextContainerChange = true; |
743 | 759 | ||
744 | } else if (this.application.ninja.currentDocument.setLevel) { | 760 | } else if (this.application.ninja.currentDocument.setLevel) { |
745 | //console.log('TimelinePanel.initTimelineForDocument: breadCrumbClick'); | 761 | // console.log('TimelinePanel.initTimelineForDocument: breadCrumbClick'); |
746 | // Information stored, but we're moving up or down in the breadcrumb. | 762 | // Information stored, but we're moving up or down in the breadcrumb. |
747 | // Get the current selection and restore timeline info for its children. | 763 | // Get the current selection and restore timeline info for its children. |
748 | var parentNode = this.application.ninja.currentSelectedContainer, | 764 | var parentNode = this.application.ninja.currentSelectedContainer, |
@@ -757,12 +773,12 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
757 | // Draw the repetition. | 773 | // Draw the repetition. |
758 | this.arrLayers = this.temparrLayers; | 774 | this.arrLayers = this.temparrLayers; |
759 | this.currentLayerNumber = storedCurrentLayerNumber; | 775 | this.currentLayerNumber = storedCurrentLayerNumber; |
760 | boolAlreadyInitialized = true; | ||
761 | this.application.ninja.currentDocument.setLevel = false; | 776 | this.application.ninja.currentDocument.setLevel = false; |
762 | 777 | ||
763 | 778 | ||
779 | |||
764 | } else { | 780 | } else { |
765 | //console.log('TimelinePanel.initTimelineForDocument: else fallback'); | 781 | // console.log('TimelinePanel.initTimelineForDocument: else fallback'); |
766 | // we do have information stored. Use it. | 782 | // we do have information stored. Use it. |
767 | var i = 0, | 783 | var i = 0, |
768 | tlArrLayersLength = this.application.ninja.currentDocument.tlArrLayers.length; | 784 | tlArrLayersLength = this.application.ninja.currentDocument.tlArrLayers.length; |
diff --git a/js/panels/components-panel.reel/components-panel.js b/js/panels/components-panel.reel/components-panel.js index 5a9d2ca5..0b453c4a 100755 --- a/js/panels/components-panel.reel/components-panel.js +++ b/js/panels/components-panel.reel/components-panel.js | |||
@@ -4 |