From 4553f48aa17024922569faea1f62e9251a0c0185 Mon Sep 17 00:00:00 2001 From: Eric Guzman Date: Fri, 18 May 2012 14:35:09 -0700 Subject: Style sheets - Add support for removing default style sheet --- js/controllers/styles-controller.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'js/controllers/styles-controller.js') diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js index c5076771..00d67b89 100755 --- a/js/controllers/styles-controller.js +++ b/js/controllers/styles-controller.js @@ -173,13 +173,17 @@ var stylesController = exports.StylesController = Montage.create(Component, { addRule : { value : function(selector, declaration, stylesheet, index) { - //console.log("Add rule"); + stylesheet = stylesheet || this._defaultStylesheet; + + if(stylesheet === null) { + stylesheet = this.defaultStylesheet = this.createStylesheet(); + } + var rulesLength = this._defaultStylesheet.rules.length, argType = (typeof declaration), ruleText = selector, - stylesheet = stylesheet || this._defaultStylesheet, - property, rule; - + rule; + index = index || (argType === 'number') ? declaration : rulesLength; if(argType === 'string') { @@ -1295,12 +1299,18 @@ var stylesController = exports.StylesController = Montage.create(Component, { removeStyleSheet : { value: function(sheet) { - var sheetEl = sheet.ownerNode; + var sheetEl = sheet.ownerNode, sheetCount; if(sheetEl) { sheetEl.disabled = true; this.userStyleSheets.splice(this.userStyleSheets.indexOf(sheet), 1); + ///// Check to see if we're removing the default style sheet + if(sheet === this._defaultStylesheet) { + sheetCount = this.userStyleSheets.length; + this.defaultStylesheet = (sheetCount) ? this.userStyleSheets[sheetCount-1] : null; + } + ///// Mark for removal for i/o sheetEl.setAttribute('data-ninja-remove', 'true'); -- cgit v1.2.3