From 15d09c4d6a0f71222e83a2a175ff4e57dfe8b89a Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 4 Mar 2015 14:49:34 +0400 Subject: [PATCH 1/2] support setting default theme in workspace config --- configs/client-default.js | 3 ++- plugins/c9.ide.layout.classic/preload.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configs/client-default.js b/configs/client-default.js index 47369527..5f42b148 100644 --- a/configs/client-default.js +++ b/configs/client-default.js @@ -403,7 +403,8 @@ module.exports = function(options) { "plugins/c9.ide.theme.flat/flat-light", { packagePath: "plugins/c9.ide.layout.classic/preload", - themePrefix: options.themePrefix + themePrefix: options.themePrefix, + defaultTheme: "dark" }, { packagePath: "plugins/c9.ide.tree/tree", diff --git a/plugins/c9.ide.layout.classic/preload.js b/plugins/c9.ide.layout.classic/preload.js index 4d02ae92..1e0d97a6 100644 --- a/plugins/c9.ide.layout.classic/preload.js +++ b/plugins/c9.ide.layout.classic/preload.js @@ -30,7 +30,7 @@ define(function(require, exports, module) { function preload(callback) { settings.setDefaults("user/general", [ - ["skin", "dark"] // "flat-light" + ["skin", options.defaultTheme || "dark"] // "flat-light" ]); if (!packed || options.loadTheme) return callback(); try { From 1c37728d8b6b69d3c7281a7a948a1d3a480aab12 Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 4 Mar 2015 15:49:46 +0400 Subject: [PATCH 2/2] fix logic for hiding double dividers --- plugins/c9.ide.ui/menus.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/c9.ide.ui/menus.js b/plugins/c9.ide.ui/menus.js index 167e0688..94461231 100644 --- a/plugins/c9.ide.ui/menus.js +++ b/plugins/c9.ide.ui/menus.js @@ -211,28 +211,27 @@ define(function(require, exports, module) { var editor = emit("getEditor"); var nodes = this.childNodes; - for (var start = 0, a, fn, cmd, n, i = nodes.length - 1; i >= 0; i--) { - cmd = (n = nodes[i]).command; - - if (start == i && !n.visible) - start = i + 1; + for (var n, prev, i = nodes.length - 1; i >= 0; i--) { + var cmd = (n = nodes[i]).command; if (!n.visible) continue; - + // prevent dividers two consecutive dividers and dividers // at bottom and top if (n.localName == "divider") { - if (i === start || i == nodes.length -1 - || nodes[i - 1].localName == "divider") + if (!prev || prev.localName == "divider") n.hide(); else n.show(); + + prev = n; continue; } + prev = n; var c = cmd && commands.commands[cmd]; - fn = c && c.isAvailable; - a = (!n.isAvailable || n.isAvailable(editor)) + var fn = c && c.isAvailable; + var a = (!n.isAvailable || n.isAvailable(editor)) && (!fn || fn(editor)); if (!cmd) @@ -242,6 +241,9 @@ define(function(require, exports, module) { n[a ? "enable" : "disable"](); } + if (prev && prev.localName == "divider") { + prev.hide(); + } } toggleIframes(e);