From f6f722feecf88c8afe59327eaf8557ce4012abc7 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Thu, 10 May 2012 22:40:02 -0700 Subject: Fixing the dirty document flag. Disabling the stylesheets dirty flag because === true on document open. Signed-off-by: Valerio Virgillito --- js/panels/Timeline/Layer.reel/Layer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index b23da749..6358a0e0 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -721,7 +721,7 @@ var Layer = exports.Layer = Montage.create(Component, { this.dynamicLayerName.value = this._layerEditable.value; this.application.ninja.timeline.currentLayerSelected.layerData.elementsList[0].dataset.storedLayerName = this.dynamicLayerName.value; this.needsDraw = true; - this.application.ninja.documentController.activeDocument.needsSave = true; + this.application.ninja.documentController.activeDocument.model.needsSave = true; } }, handleAddStyleClick: { @@ -749,7 +749,7 @@ var Layer = exports.Layer = Montage.create(Component, { this.dynamicLayerName.value = newVal; this.layerName = newVal; this.application.ninja.timeline.currentLayerSelected.layerData.elementsList[0].dataset.storedLayerName = newVal; - this.application.ninja.documentController.activeDocument.needsSave = true; + this.application.ninja.documentController.activeDocument.model.needsSave = true; this.needsDraw = true; } }, -- cgit v1.2.3 From 26f1524c049791cb9cd81695c57b84d952a2e7e6 Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Tue, 15 May 2012 16:08:26 -0700 Subject: Timeline: Multiselect from the layer panel. --- js/panels/Timeline/Layer.reel/Layer.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index b0f6d220..418d2226 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -494,10 +494,14 @@ var Layer = exports.Layer = Montage.create(Component, { }, draw: { value: function() { - if (this.isSelected) { - this.element.classList.add("selected"); - } else { - this.element.classList.remove("selected"); + var boolHasClass = this.element.classList.contains("layerSelected"); + if (this.isSelected && !boolHasClass) { + //console.log('Layer.draw, adding selection for layer ', this.layerName) + this.element.classList.add("layerSelected"); + } + if (!this.isSelected && boolHasClass) { + //console.log('Layer.draw, removing selection for layer ', this.layerName) + this.element.classList.remove("layerSelected"); } } }, -- cgit v1.2.3 From a696dffcc84b4d2719f8fa918676f9575858ca9a Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Thu, 17 May 2012 16:52:16 -0700 Subject: Timeline: Multiselect improvements. New convenience methods. Multiselect drag and drop. --- js/panels/Timeline/Layer.reel/Layer.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 418d2226..4a737490 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -133,6 +133,20 @@ var Layer = exports.Layer = Montage.create(Component, { } }, + _stageElement: { + value: null + }, + + stageElement: { + get: function() { + return this._stageElement; + }, + set: function(newVal) { + this._stageElement = newVal; + this.layerData.stageElement = newVal; + } + }, + _elementsList : { value: [] @@ -398,6 +412,7 @@ var Layer = exports.Layer = Montage.create(Component, { this.layerName = this.layerData.layerName; this.layerID = this.layerData.layerID; + this.stageElement = this.layerData.stageElement this.arrLayerStyles = this.layerData.arrLayerStyles; this.isMainCollapsed = this.layerData.isMainCollapsed; this.isPositionCollapsed = this.layerData.isPositionCollapsed; @@ -678,7 +693,7 @@ var Layer = exports.Layer = Montage.create(Component, { this.dynamicLayerName.value = this._layerEditable.value; this.needsDraw = true; this.application.ninja.documentController.activeDocument.needsSave = true; - this.layerData.elementsList[0].setAttribute("id",this.dynamicLayerName.value); + this.layerData.stageElement.setAttribute("id",this.dynamicLayerName.value); } }, handleAddStyleClick: { @@ -790,7 +805,7 @@ var Layer = exports.Layer = Montage.create(Component, { }, handleDragstart: { value: function(event) { - this.parentComponent.parentComponent.dragLayerID = this.layerID; + //this.parentComponent.parentComponent.dragLayerID = this.layerID; event.dataTransfer.setData('Text', 'Layer'); this.parentComponent.parentComponent.draggingType = "layer"; } -- cgit v1.2.3 From ef499e92341c9bd6edbee70f86dc5a6fe8b461eb Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Thu, 17 May 2012 18:14:17 -0700 Subject: Timeline: More bug fixes and code cleanup for multiselect. --- js/panels/Timeline/Layer.reel/Layer.js | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 4a737490..48b2dfdf 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -524,14 +524,6 @@ var Layer = exports.Layer = Montage.create(Component, { value: function() { // console.log("Layer.didDraw: Layer "+ this.layerID ); if (this._isFirstDraw === true) { - if (this.isSelected === true) { - if (this.application.ninja.currentDocument._uuid === this._docUUID) { - // Once we're done drawing the first time we need to tell the TimelinePanel if - // this layer is supposed to be selected. - //console.log('layerName ' + this.layerName); - this.parentComponent.parentComponent.selectedLayerID = this.layerID; - } - } this._isFirstDraw = false; this.layerData._isFirstDraw = false; @@ -539,7 +531,6 @@ var Layer = exports.Layer = Montage.create(Component, { this.mainCollapser.myContent.style.height = "auto"; this.mainCollapser.myContent.classList.remove(this.mainCollapser.collapsedClass); this.mainCollapser.clicker.classList.remove(this.mainCollapser.collapsedClass); - } if (this.isPositionCollapsed === false) { this.positionCollapser.myContent.style.height = "auto"; @@ -553,9 +544,6 @@ var Layer = exports.Layer = Montage.create(Component, { } } - - - } }, /* End: Draw cycle */ -- cgit v1.2.3 From 6c4f58ab9dd2f60d509d3e1c1ba0c94a6995691d Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Fri, 18 May 2012 15:05:50 -0700 Subject: Timeline: Fix element insertion to use new TimelinePanel properties and multiselect. Fix Property Panel so changing an ID there will actually change an ID on the element (broken by switch from id to data-montage-id change). --- js/panels/Timeline/Layer.reel/Layer.js | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 48b2dfdf..4fb3e43c 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -500,11 +500,6 @@ var Layer = exports.Layer = Montage.create(Component, { this.element.addEventListener("dragleave", this.handleDragleave.bind(this), false); this.element.addEventListener("dragstart", this.handleDragstart.bind(this), false); this.element.addEventListener("drop", this.handleDrop.bind(this), false); - - this.eventManager.addEventListener("updatedID", this, false); - - - } }, draw: { @@ -854,23 +849,6 @@ var Layer = exports.Layer = Montage.create(Component, { } } }, - - handleUpdatedID:{ - value:function(event){ - var i= this.application.ninja.timeline.arrLayers.length; - if(event.detail.id){ - for(var k=0;k --- js/panels/Timeline/Layer.reel/Layer.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 6358a0e0..e8619d02 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -498,11 +498,7 @@ var Layer = exports.Layer = Montage.create(Component, { triggerOutgoingBinding : { value: function() { - if (this.layerData.triggerBinding === true) { - this.layerData.triggerBinding = false; - } else { - this.layerData.triggerBinding = true; - } + this.layerData.triggerBinding = !this.layerData.triggerBinding; } }, /* END: Models */ -- cgit v1.2.3 From 2e4831cf0fe04f37a179f84b098ae0899d4e40b8 Mon Sep 17 00:00:00 2001 From: Jonathan Duran Date: Thu, 24 May 2012 09:34:05 -0700 Subject: recreating layer props Signed-off-by: Jonathan Duran --- js/panels/Timeline/Layer.reel/Layer.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 4fb3e43c..8df0e9ae 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -556,7 +556,7 @@ var Layer = exports.Layer = Montage.create(Component, { } }, addStyle : { - value: function() { + value: function(styleProperty) { // Add a new style rule. It should be added above the currently selected rule, // Or at the end, if no rule is selected. @@ -579,7 +579,12 @@ var Layer = exports.Layer = Montage.create(Component, { newStyle.styleID = newEvent.styleID; newStyle.whichView = "hintable"; - newStyle.editorProperty = ""; + newStyle.editorProperty = ""; + if(styleProperty){ + newStyle.editorProperty = styleProperty; + newEvent.layerEventType = "restoreStyle"; + newEvent.trackEditorProperty = styleProperty; + } newStyle.editorValue = ""; newStyle.ruleTweener = false; newStyle.isSelected = false; -- cgit v1.2.3 From 811ce7a7cdec18f304c6660a70012960e61d967a Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Thu, 24 May 2012 17:46:47 -0700 Subject: Timeline: bug fix "Layer name gets doubled" (Spreadsheet) --- js/panels/Timeline/Layer.reel/Layer.js | 44 ++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 13 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 8df0e9ae..db99e869 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -74,7 +74,7 @@ var Layer = exports.Layer = Montage.create(Component, { /* Layer models: the name, ID, and selected and animation booleans for the layer */ _layerName:{ - value: "Default Layer Name" + value: "" }, layerName:{ @@ -83,13 +83,22 @@ var Layer = exports.Layer = Montage.create(Component, { return this._layerName; }, set:function(newVal){ - this._layerEditable.value = newVal; - this._layerName = newVal; - this.layerData.layerName = newVal; + if (this._layerEditable.value !== newVal) { + this._layerEditable.value = newVal; + } + if (this._layerName !== newVal) { + this._layerName = newVal; + } + if (this.layerData.layerName !== newVal) { + this.layerData.layerName = newVal; + } + if (typeof(this.dynamicLayerName) !== "undefined") { - this.dynamicLayerName.value = newVal; + if (this.dynamicLayerName.value !== newVal) { + this.dynamicLayerName.value = newVal; + } } - + this.needsDraw = true; } }, _layerID:{ @@ -513,6 +522,11 @@ var Layer = exports.Layer = Montage.create(Component, { //console.log('Layer.draw, removing selection for layer ', this.layerName) this.element.classList.remove("layerSelected"); } + + // Update layer name? + if (this.layerName !== this.layer_label_text.innerText) { + this.layer_label_text.innerText = this.layerName; + } } }, didDraw: { @@ -678,10 +692,12 @@ var Layer = exports.Layer = Montage.create(Component, { /* Begin: Event handlers */ handleLayerNameChange: { value: function(event) { - this.dynamicLayerName.value = this._layerEditable.value; - this.needsDraw = true; - this.application.ninja.documentController.activeDocument.needsSave = true; - this.layerData.stageElement.setAttribute("id",this.dynamicLayerName.value); + + if (this._layerEditable.value !== this.layerName) { + this.layerName = this._layerEditable.value; + this.application.ninja.documentController.activeDocument.needsSave = true; + this.layerData.stageElement.setAttribute("id",this._layerEditable.value); + } } }, handleAddStyleClick: { @@ -706,10 +722,12 @@ var Layer = exports.Layer = Montage.create(Component, { if (this._layerEditable.enteredValue.length === 0) { newVal = this._layerEditable._preEditValue; } - this.dynamicLayerName.value = newVal; this.layerName = newVal; - this.application.ninja.documentController.activeDocument.needsSave = true; - this.needsDraw = true; + if (newVal !== this.layerName) { + this.layerName = newVal; + this.application.ninja.documentController.activeDocument.needsSave = true; + this.layerData.stageElement.setAttribute("id", newVal); + } } }, handleMousedown: { -- cgit v1.2.3 From b0a736deb4f3bb515e0ca4009fe4f98e22cec2c0 Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Fri, 25 May 2012 10:15:48 -0700 Subject: Timeline: Better fix for keeping styles/tracks in synch when adding styles on document open. --- js/panels/Timeline/Layer.reel/Layer.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index db99e869..45d6f0a3 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -579,10 +579,11 @@ var Layer = exports.Layer = Montage.create(Component, { // newStyle = LayerStyle.create(), newStyle = {}, newEvent = document.createEvent("CustomEvent"); - + /* this.isStyleCollapsed = false; this.layerData.isStyleCollapsed = false; this.triggerOutgoingBinding(); + */ newEvent.initCustomEvent("layerEvent", false, true); newEvent.layerEventLocale = "styles"; @@ -702,6 +703,11 @@ var Layer = exports.Layer = Montage.create(Component, { }, handleAddStyleClick: { value: function(event) { + + this.isStyleCollapsed = false; + this.layerData.isStyleCollapsed = false; + this.triggerOutgoingBinding(); + this.addStyle(); } }, -- cgit v1.2.3 From 4a8a293ba3fdf934a431152a9351f45092fb3695 Mon Sep 17 00:00:00 2001 From: Jon Reid Date: Fri, 25 May 2012 14:01:45 -0700 Subject: Timeline: bug fix: better selection/deselection of styles within layers. --- js/panels/Timeline/Layer.reel/Layer.js | 51 ++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 5 deletions(-) (limited to 'js/panels/Timeline/Layer.reel/Layer.js') diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js index 45d6f0a3..f571c1d4 100644 --- a/js/panels/Timeline/Layer.reel/Layer.js +++ b/js/panels/Timeline/Layer.reel/Layer.js @@ -71,6 +71,24 @@ var Layer = exports.Layer = Montage.create(Component, { this._styleCounter = newVal; } }, + _selectedStyleIndex: { + value: false + }, + selectedStyleIndex: { + get: function() { + return this._selectedStyleIndex; + }, + set: function(newVal) { + if (typeof(newVal) === "undefined") { + return; + } + if (newVal !== this._selectedStyleIndex) { + this._selectedStyleIndex = newVal; + this.layerData.selectedStyleIndex = newVal; + this.needsDraw = true; + } + } + }, /* Layer models: the name, ID, and selected and animation booleans for the layer */ _layerName:{ @@ -441,6 +459,7 @@ var Layer = exports.Layer = Montage.create(Component, { this.isVisible = this.layerData.isVisible; this.isAnimated = this.layerData.isAnimated; this.docUUID = this.layerData.docUUID; + this.selectedStyleIndex = this.layerData.selectedStyleIndex; this.needsDraw = boolNeedsDraw; } }, @@ -517,11 +536,21 @@ var Layer = exports.Layer = Montage.create(Component, { if (this.isSelected && !boolHasClass) { //console.log('Layer.draw, adding selection for layer ', this.layerName) this.element.classList.add("layerSelected"); + } if (!this.isSelected && boolHasClass) { //console.log('Layer.draw, removing selection for layer ', this.layerName) this.element.classList.remove("layerSelected"); } + // Enable or disable the delete style button as appropriate + if (this.isSelected) { + if (this.selectedStyleIndex !== "false") { + this.selectStyle(this.selectedStyleIndex); + this.buttonDeleteStyle.classList.remove("disabled"); + } + } else { + this.buttonDeleteStyle.classList.add("disabled"); + } // Update layer name? if (this.layerName !== this.layer_label_text.innerText) { @@ -643,31 +672,38 @@ var Layer = exports.Layer = Montage.create(Component, { }, selectStyle : { value: function(styleIndex) { + //console.log("Layer.selectStyle ", styleIndex); // Select a style based on its index. // use layerIndex = false to deselect all styles. var i = 0, arrLayerStylesLength = this.arrLayerStyles.length; + // First, update this.arrStyles[].isSelected for (i = 0; i < arrLayerStylesLength; i++) { if (i === styleIndex) { this.arrLayerStyles[i].isSelected = true; } else { - this.arrLayerStyles[i].isSelected = false; + if (this.arrLayerStyles[i].isSelected === true) { + this.arrLayerStyles[i].isSelected = false; + } } } + + /* // Next, update this.styleRepetition.selectedIndexes. if (styleIndex !== false) { - this.styleRepetition.selectedIndexes = [styleIndex]; + //this.styleRepetition.selectedIndexes = [styleIndex]; this.buttonDeleteStyle.classList.remove("disabled"); } else { - this.styleRepetition.selectedIndexes = null; + //this.styleRepetition.selectedIndexes = null; if (typeof(this.buttonDeleteStyle) !== "undefined") { this.buttonDeleteStyle.classList.add("disabled"); } } + */ } }, @@ -685,6 +721,7 @@ var Layer = exports.Layer = Montage.create(Component, { this.arrLayerStyles[i].isActive = false; } } + //console.log("Layer.getActiveStyleIndex, returnVal ", returnVal) return returnVal; } }, @@ -738,15 +775,19 @@ var Layer = exports.Layer = Montage.create(Component, { }, handleMousedown: { value: function(event) { + //console.log("Layer.handleMousedown") this.layerData.isActive = true; - var ptrParent = nj.queryParentSelector(event.target, ".content-style"); + var ptrParent = nj.queryParentSelector(event.target, ".content-style"), + activeStyleIndex = this.getActiveStyleIndex(); + this.selectedStyleIndex = activeStyleIndex; if (ptrParent !== false) { - this.selectStyle(this.getActiveStyleIndex()); + this.selectStyle(this.selectedStyleIndex); } } }, handleLayerClick : { value: function(event) { + //console.log("Layer.handleLayerClick") var ptrParent = nj.queryParentSelector(event.target, ".content-style"); if (ptrParent !== false) { var myIndex = this.getActiveStyleIndex(); -- cgit v1.2.3