From d857cc7d779611ee6dc9e76070f10ccf33d01472 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 11 Apr 2013 15:39:45 -0600 Subject: [PATCH] List available themes in general config panel --- src/app/atom.coffee | 12 ++++++++++++ src/app/general-config-panel.coffee | 10 ++++++++++ src/stdlib/fs-utils.coffee | 9 +++++++-- static/config.less | 4 ++++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/app/atom.coffee b/src/app/atom.coffee index 3d5f02d90..81b5410e7 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -116,6 +116,18 @@ _.extend atom, @loadTheme(themeName) for themeName in themeNames @loadUserStylesheet() + getAvailableThemePaths: -> + themePaths = [] + for themeDirPath in config.themeDirPaths + + console.log fsUtils.list(themeDirPath) + + themePaths.push(fsUtils.list(themeDirPath, ['', '.tmTheme', '.css', 'less'])...) + _.uniq(themePaths) + + getAvailableThemeNames: -> + fsUtils.base(path).split('.')[0] for path in @getAvailableThemePaths() + loadTheme: (name) -> @loadedThemes.push Theme.load(name) diff --git a/src/app/general-config-panel.coffee b/src/app/general-config-panel.coffee index 0ea6746a3..4f3c362de 100644 --- a/src/app/general-config-panel.coffee +++ b/src/app/general-config-panel.coffee @@ -19,8 +19,13 @@ class GeneralConfigPanel extends ConfigPanel @div "Packages" @ol id: 'package-list', outlet: 'packageList' + @div class: 'row', => + @div "Themes" + @ol id: 'available-theme-list', outlet: 'availableThemeList' + initialize: -> @populatePackageList() + @populateThemeLists() @packageList.on 'change', 'input[type=checkbox]', (e) -> checkbox = $(e.target) name = checkbox.closest('li').attr('name') @@ -44,3 +49,8 @@ class GeneralConfigPanel extends ConfigPanel @packageList.find("input[type='checkbox']").attr('checked', true) for name in disabledPackages @packageList.find("li[name='#{name}'] input[type='checkbox']").attr('checked', false) + + populateThemeLists: -> + for name in atom.getAvailableThemeNames() + @availableThemeList.append $$ -> + @li name: name, name diff --git a/src/stdlib/fs-utils.coffee b/src/stdlib/fs-utils.coffee index 22bbc834c..3b48855eb 100644 --- a/src/stdlib/fs-utils.coffee +++ b/src/stdlib/fs-utils.coffee @@ -106,8 +106,13 @@ module.exports = done(null, paths) filterExtensions: (paths, extensions) -> - extensions = extensions.map (ext) -> '.' + ext.replace(/^\./, '') - paths.filter (path) => _.include(extensions, @extension(path)) + extensions = extensions.map (ext) -> + if ext is '' + ext + else + '.' + ext.replace(/^\./, '') + paths.filter (path) => + _.include(extensions, @extension(path)) listTree: (rootPath) -> paths = [] diff --git a/static/config.less b/static/config.less index 98ec6b86f..392cfdedc 100644 --- a/static/config.less +++ b/static/config.less @@ -27,6 +27,10 @@ padding: 10px; } + .row { + margin-bottom: 10px; + } + label { display: inline-block; width: 180px;