diff options
-rw-r--r-- | js/panels/css-panel/styles-view-container.reel/styles-view-container.js | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/js/panels/css-panel/styles-view-container.reel/styles-view-container.js b/js/panels/css-panel/styles-view-container.reel/styles-view-container.js index 3f0cd47e..7560ce6f 100644 --- a/js/panels/css-panel/styles-view-container.reel/styles-view-container.js +++ b/js/panels/css-panel/styles-view-container.reel/styles-view-container.js | |||
@@ -29,9 +29,18 @@ exports.StylesViewContainer = Montage.create(Component, { | |||
29 | this.needsDraw = true; | 29 | this.needsDraw = true; |
30 | } | 30 | } |
31 | }, | 31 | }, |
32 | _lastSelection : { | 32 | _prevSelection : { |
33 | value: null | 33 | value: null |
34 | }, | 34 | }, |
35 | prevSelection : { | ||
36 | get: function() { | ||
37 | return this._prevSelection; | ||
38 | }, | ||
39 | set: function(value) { | ||
40 | console.log("setting last selection to " + value); | ||
41 | this._prevSelection = value; | ||
42 | } | ||
43 | }, | ||
35 | _hasStyles : { | 44 | _hasStyles : { |
36 | value: false | 45 | value: false |
37 | }, | 46 | }, |
@@ -75,16 +84,25 @@ exports.StylesViewContainer = Montage.create(Component, { | |||
75 | this.eventManager.addEventListener( "selectionChange", this, false); | 84 | this.eventManager.addEventListener( "selectionChange", this, false); |
76 | } | 85 | } |
77 | }, | 86 | }, |
87 | _copy : { | ||
88 | value: function(array) { | ||
89 | return array.map(function(item) { return item; }); | ||
90 | } | ||
91 | }, | ||
78 | handleSelectionChange: { | 92 | handleSelectionChange: { |
79 | value: function() { | 93 | value: function() { |
80 | var elements = this.application.ninja.selectedElements; | 94 | var elements = this.application.ninja.selectedElements, |
95 | elementsCopy = this._copy(elements); | ||
81 | 96 | ||
82 | if(this._isSameArray(elements, this._lastSelection) && this.contentPanel === "rules") { | 97 | if(this._isSameArray(elements, this.prevSelection) && this.contentPanel === "rules") { |
83 | console.log('new selection is identical'); | 98 | console.log('new selection is identical'); |
84 | return false; | 99 | return false; |
85 | } | 100 | } |
86 | 101 | ||
87 | this._lastSelection = elements; | 102 | // TODO: should selection always create new array |
103 | // TODO: pushing to selection array makes prevSelection | ||
104 | // TODO: invalid | ||
105 | this.prevSelection = elementsCopy; | ||
88 | 106 | ||
89 | if(elements.length === 0) { | 107 | if(elements.length === 0) { |
90 | this.hasStyles = false; | 108 | this.hasStyles = false; |
@@ -96,7 +114,7 @@ exports.StylesViewContainer = Montage.create(Component, { | |||
96 | this.selectionNameLabelText = this._getElementLabel(elements[0]); | 114 | this.selectionNameLabelText = this._getElementLabel(elements[0]); |
97 | 115 | ||
98 | if(this.contentPanel === "rules") { | 116 | if(this.contentPanel === "rules") { |
99 | this.ruleListContainer.displayListForSelection(elements); | 117 | this.ruleListContainer.displayListForSelection(elementsCopy); |
100 | } else { | 118 | } else { |
101 | this.computedStyleView.declaration = elements[0]; | 119 | this.computedStyleView.declaration = elements[0]; |
102 | } | 120 | } |
@@ -106,7 +124,7 @@ exports.StylesViewContainer = Montage.create(Component, { | |||
106 | this.contentPanel = "rules"; | 124 | this.contentPanel = "rules"; |
107 | this.selectionNameLabelText = elements.length + " elements selected."; | 125 | this.selectionNameLabelText = elements.length + " elements selected."; |
108 | ///// find common rules | 126 | ///// find common rules |
109 | this.ruleListContainer.displayListForSelection(elements); | 127 | this.ruleListContainer.displayListForSelection(elementsCopy); |
110 | 128 | ||
111 | } | 129 | } |
112 | 130 | ||