cssHelper.jsm (bluegriffon-3.0.1) | : | cssHelper.jsm (bluegriffon-3.1) | ||
---|---|---|---|---|
skipping to change at line 297 | skipping to change at line 297 | |||
this.reserializeEmbeddedStylesheet(stylesheet, aEditor, aDocument); | this.reserializeEmbeddedStylesheet(stylesheet, aEditor, aDocument); | |||
}, | }, | |||
_reserializeEmbeddedStylesheet: function(aSheet, aTabs) | _reserializeEmbeddedStylesheet: function(aSheet, aTabs) | |||
{ | { | |||
var cssRules = aSheet.cssRules; | var cssRules = aSheet.cssRules; | |||
var str = ""; | var str = ""; | |||
for (var i = 0; i < cssRules.length; i++) | for (var i = 0; i < cssRules.length; i++) | |||
{ | { | |||
var rule = cssRules[i]; | var rule = cssRules[i]; | |||
switch (rule.type) | str += (i ? "\n" : "") + rule.cssText + "\n"; | |||
{ | ||||
case CssUtils.kCSSRule.STYLE_RULE: | ||||
str += (i ? "\n" : "") + aTabs + rule.selectorText + " {\n"; | ||||
for (var j = 0; j < rule.style.length; j++) { | ||||
var property = rule.style.item(j); | ||||
var value = rule.style.getPropertyValue(property); | ||||
var priority = rule.style.getPropertyPriority(property); | ||||
str += aTabs + " " + property + ": " + value | ||||
+ (priority ? " !important" : "") | ||||
+ ";\n"; | ||||
} | ||||
str += aTabs + "}\n"; | ||||
break; | ||||
case CssUtils.kCSSRule.MEDIA_RULE: | ||||
str += (i ? "\n" : "") + aTabs + "@media " + rule.media.mediaText + " | ||||
{\n"; | ||||
str += this._reserializeEmbeddedStylesheet(rule, aTabs + " "); | ||||
str += aTabs + "}\n"; | ||||
break; | ||||
default: | ||||
str += (i ? "\n" : "") + rule.cssText; | ||||
break; | ||||
} | ||||
} | } | |||
return str; | return str; | |||
}, | }, | |||
reserializeEmbeddedStylesheet: function(aSheet, editor, aDocument) | reserializeEmbeddedStylesheet: function(aSheet, editor, aDocument) | |||
{ | { | |||
var str = this._reserializeEmbeddedStylesheet(aSheet, ""); | var str = this._reserializeEmbeddedStylesheet(aSheet, ""); | |||
var styleEltForSheet = aSheet.ownerNode; | var styleEltForSheet = aSheet.ownerNode; | |||
var child = styleEltForSheet.firstChild; | var child = styleEltForSheet.firstChild; | |||
while (child) | while (child) | |||
{ | { | |||
var tmp = child.nextSibling; | var tmp = child.nextSibling; | |||
if (editor) | if (editor) | |||
editor.deleteNode(child); | editor.deleteNode(child); | |||
else | else | |||
styleEltForSheet.removeChild(child); | styleEltForSheet.removeChild(child); | |||
child = tmp; | child = tmp; | |||
} | } | |||
var cssParser = new CSSParser(str); | ||||
var prefs = Components.classes["@mozilla.org/preferences-service;1"] | ||||
.getService(Components.interfaces.nsIPrefBranch); | ||||
var cssParser = new CSSParser(str, (prefs.getCharPref("bluegriffon.css.seria | ||||
lization") != "shorthands")); | ||||
if (str) { | if (str) { | |||
var parsedSheet = cssParser.parse(str, false, false); | var parsedSheet = cssParser.parse(str, false, false); | |||
str = parsedSheet.cssText(); | str = parsedSheet.cssText(); | |||
} | } | |||
var textNode; | var textNode; | |||
textNode = styleEltForSheet.ownerDocument.createTextNode("\n" + str); | textNode = styleEltForSheet.ownerDocument.createTextNode("\n" + str); | |||
if (editor) | if (editor) | |||
editor.insertNode(textNode, styleEltForSheet, 0); | editor.insertNode(textNode, styleEltForSheet, 0); | |||
else | else | |||
End of changes. 2 change blocks. | ||||
26 lines changed or deleted | 6 lines changed or added |