aboutsummaryrefslogtreecommitdiff
path: root/js/panels/Timeline/Layer.reel/Layer.js
diff options
context:
space:
mode:
authorJon Reid2012-06-01 14:26:30 -0700
committerJon Reid2012-06-01 14:26:30 -0700
commit4338d57eed565f723bfb7cbcefca65836b68953b (patch)
treec49abfefb33f24f853a0129e03120d429ef41753 /js/panels/Timeline/Layer.reel/Layer.js
parent66007a04da84cae1d81af5340b11706d5f25c89d (diff)
downloadninja-4338d57eed565f723bfb7cbcefca65836b68953b.tar.gz
Timeline: Better style selection and deselection. Automatic re-selection of
previously selected style when parent layer is reselected.
Diffstat (limited to 'js/panels/Timeline/Layer.reel/Layer.js')
-rw-r--r--js/panels/Timeline/Layer.reel/Layer.js56
1 files changed, 38 insertions, 18 deletions
diff --git a/js/panels/Timeline/Layer.reel/Layer.js b/js/panels/Timeline/Layer.reel/Layer.js
index 9576d66f..4da1bfba 100644
--- a/js/panels/Timeline/Layer.reel/Layer.js
+++ b/js/panels/Timeline/Layer.reel/Layer.js
@@ -83,13 +83,14 @@ var Layer = exports.Layer = Montage.create(Component, {
83 return; 83 return;
84 } 84 }
85 if (newVal !== this._selectedStyleIndex) { 85 if (newVal !== this._selectedStyleIndex) {
86 console.log("Layer.selectedStyleIndex.set ", newVal);
87 this._selectedStyleIndex = newVal; 86 this._selectedStyleIndex = newVal;
88 this.layerData.selectedStyleIndex = newVal; 87 this.layerData.selectedStyleIndex = newVal;
89 this.needsDraw = true;
90 } 88 }
91 } 89 }
92 }, 90 },
91 _storedStyleIndex : {
92 value: false
93 },
93 94
94 /* Layer models: the name, ID, and selected and animation booleans for the layer */ 95 /* Layer models: the name, ID, and selected and animation booleans for the layer */
95 _layerName:{ 96 _layerName:{
@@ -277,6 +278,10 @@ var Layer = exports.Layer = Montage.create(Component, {
277 if (value === false) { 278 if (value === false) {
278 // If changing from true to false, we need to deselect any associated styles 279 // If changing from true to false, we need to deselect any associated styles
279 this.selectStyle(false); 280 this.selectStyle(false);
281 } else {
282 if (this._storedStyleIndex !== false) {
283 this.selectStyle(this._storedStyleIndex);
284 }
280 } 285 }
281 this._isSelected = value; 286 this._isSelected = value;
282 this.layerData.isSelected = value; 287 this.layerData.isSelected = value;
@@ -541,7 +546,7 @@ var Layer = exports.Layer = Montage.create(Component, {
541 } 546 }
542 // Enable or disable the delete style button as appropriate 547 // Enable or disable the delete style button as appropriate
543 if (this.isSelected) { 548 if (this.isSelected) {
544 if (this.selectedStyleIndex !== "false") { 549 if (this.selectedStyleIndex !== false) {
545 this.selectStyle(this.selectedStyleIndex); 550 this.selectStyle(this.selectedStyleIndex);
546 this.buttonDeleteStyle.classList.remove("disabled"); 551 this.buttonDeleteStyle.classList.remove("disabled");
547 } 552 }
@@ -630,6 +635,7 @@ var Layer = exports.Layer = Montage.create(Component, {
630 newStyle.ruleTweener = false; 635 newStyle.ruleTweener = false;
631 newStyle.isSelected = false; 636 newStyle.isSelected = false;
632 this.arrLayerStyles.push(newStyle); 637 this.arrLayerStyles.push(newStyle);
638 this.selectStyle(this.arrLayerStyles.length -1);
633 639
634 // Set up the event info and dispatch the event 640 // Set up the event info and dispatch the event
635 this.styleCounter += 1; 641 this.styleCounter += 1;
@@ -666,26 +672,37 @@ var Layer = exports.Layer = Montage.create(Component, {
666 }, 672 },
667 selectStyle : { 673 selectStyle : {
668 value: function(styleIndex) { 674 value: function(styleIndex) {
669 console.log("Layer.selectStyle ", styleIndex);
670
671 // Select a style based on its index. 675 // Select a style based on its index.
672 // use layerIndex = false to deselect all styles. 676 // use layerIndex = false to deselect all styles.
673 var i = 0, 677 var i = 0,
674 arrLayerStylesLength = this.arrLayerStyles.length; 678 arrLayerStylesLength = this.arrLayerStyles.length;
675 679
676 680 if (styleIndex === false) {
677 // First, update this.arrStyles[].isSelected 681 if (arrLayerStylesLength === 0) {
678 for (i = 0; i < arrLayerStylesLength; i++) { 682 // No styles selected, so do nothing.
679 if (i === styleIndex) { 683 return;
680 this.arrLayerStyles[i].isSelected = true; 684 }
681 } else { 685 for (i = 0; i < arrLayerStylesLength; i++) {
682 if (this.arrLayerStyles[i].isSelected === true) { 686 if (this.arrLayerStyles[i].isSelected === true) {
683 this.arrLayerStyles[i].isSelected = false; 687 this.arrLayerStyles[i].isSelected = false;
684 } 688 }
685 } 689 }
686 } 690 } else {
687 691 for (i = 0; i < arrLayerStylesLength; i++) {
688 692 if (i === styleIndex) {
693 this.arrLayerStyles[i].isSelected = true;
694 } else {
695 if (this.arrLayerStyles[i].isSelected === true) {
696 this.arrLayerStyles[i].isSelected = false;
697 }
698 }
699 }
700 this.selectedStyleIndex = styleIndex;
701 this._storedStyleIndex = styleIndex;
702 }
703
704
705
689 /* 706 /*
690 // Next, update this.styleRepetition.selectedIndexes. 707 // Next, update this.styleRepetition.selectedIndexes.
691 if (styleIndex !== false) { 708 if (styleIndex !== false) {
@@ -744,6 +761,9 @@ var Layer = exports.Layer = Montage.create(Component, {
744 }, 761 },
745 handleDeleteStyleClick: { 762 handleDeleteStyleClick: {
746 value: function(event) { 763 value: function(event) {
764 if (event.target.classList.contains("disabled")) {
765 return;
766 }
747 this.deleteStyle(); 767 this.deleteStyle();
748 } 768 }
749 }, 769 },