diff options
Diffstat (limited to 'js/panels/css-panel/style-declaration.reel/style-declaration.js')
-rw-r--r-- | js/panels/css-panel/style-declaration.reel/style-declaration.js | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/js/panels/css-panel/style-declaration.reel/style-declaration.js b/js/panels/css-panel/style-declaration.reel/style-declaration.js index 33e77297..7ba00cc7 100644 --- a/js/panels/css-panel/style-declaration.reel/style-declaration.js +++ b/js/panels/css-panel/style-declaration.reel/style-declaration.js | |||
@@ -86,9 +86,9 @@ exports.StyleDeclaration = Montage.create(Component, { | |||
86 | 86 | ||
87 | if(this.includeEmptyStyle) { | 87 | if(this.includeEmptyStyle) { |
88 | this.styles.push({ | 88 | this.styles.push({ |
89 | "name": "property", | 89 | name : "property", |
90 | "value" : "value", | 90 | value : "value", |
91 | "isEmpty": true | 91 | isEmpty : true |
92 | }); | 92 | }); |
93 | } | 93 | } |
94 | 94 | ||
@@ -159,6 +159,26 @@ exports.StyleDeclaration = Montage.create(Component, { | |||
159 | if(i) { | 159 | if(i) { |
160 | this.styles[i].value = this.declaration.getPropertyValue(prop); | 160 | this.styles[i].value = this.declaration.getPropertyValue(prop); |
161 | usedIndices.push(i); | 161 | usedIndices.push(i); |
162 | } else { | ||
163 | //// styles doesn't exist, does shorthand? | ||
164 | var shorthands = ShorthandProps.CSS_SHORTHAND_MAP[prop], | ||
165 | shorthandUpdated = false; | ||
166 | |||
167 | if(shorthands) { | ||
168 | shorthands.forEach(function(shorthand) { | ||
169 | var shorthandIndex = styleToIndexMap[shorthand]; | ||
170 | if(shorthandIndex) { | ||
171 | //// if shorthand exists in list of rendered styles | ||
172 | //// update it | ||
173 | this.styles[shorthandIndex].value = this.declaration.getPropertyValue(shorthand); | ||
174 | shorthandUpdated = true; | ||
175 | } | ||
176 | }, this); | ||
177 | } | ||
178 | |||
179 | if(!shorthandUpdated) { | ||
180 | this.addStyle(prop, this.declaration.getPropertyValue(prop)); | ||
181 | } | ||
162 | } | 182 | } |
163 | }, this); | 183 | }, this); |
164 | 184 | ||
@@ -179,13 +199,27 @@ exports.StyleDeclaration = Montage.create(Component, { | |||
179 | 199 | ||
180 | addNewStyle : { | 200 | addNewStyle : { |
181 | value: function() { | 201 | value: function() { |
182 | this.styles.push({ | 202 | this.addStyle('property', 'value', { |
183 | "name": "property", | 203 | isEmpty : true |
184 | "value" : "value", | ||
185 | "isEmpty": true | ||
186 | }); | 204 | }); |
187 | } | 205 | } |
188 | }, | 206 | }, |
207 | addStyle : { | ||
208 | value: function(property, value, data) { | ||
209 | var styleDescriptor = { | ||
210 | property : property, | ||
211 | value : value | ||
212 | }, prop; | ||
213 | |||
214 | for(prop in data) { | ||
215 | if(data.hasOwnProperty(prop)) { | ||
216 | styleDescriptor[prop] = data[prop]; | ||
217 | } | ||
218 | } | ||
219 | |||
220 | this.arrayController.addObjects(styleDescriptor); | ||
221 | } | ||
222 | }, | ||
189 | 223 | ||
190 | /* drag/drop events */ | 224 | /* drag/drop events */ |
191 | handleDrop : { | 225 | handleDrop : { |