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 +++++++++++++++----- .../style-sheets-view.reel/style-sheets-view.js | 5 +++++ 2 files changed, 20 insertions(+), 5 deletions(-) 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'); diff --git a/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js b/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js index 383fc467..d6ec5349 100644 --- a/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js +++ b/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js @@ -37,6 +37,11 @@ exports.StyleSheetsView = Montage.create(Component, { set: function(sheet) { if(sheet === this._defaultStyleSheet) { return false; } + if(sheet === null) { + this._defaultStyleSheet = null; + return; + } + var sheetComponent, oldDefaultSheet; if(this.styleSheetList) { -- cgit v1.2.3