From bae191962d61b5ab207abb7b87e58e8d233ee385 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Sun, 13 Nov 2011 02:20:27 -0800 Subject: [PATCH] ModalSelector takes a callback, not an Array --- extensions/filefinder/filefinder.coffee | 2 +- extensions/gemfile/gemfile.coffee | 2 +- src/atom/modal-selector.coffee | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/extensions/filefinder/filefinder.coffee b/extensions/filefinder/filefinder.coffee index e8201dfd9..a08493a3c 100644 --- a/extensions/filefinder/filefinder.coffee +++ b/extensions/filefinder/filefinder.coffee @@ -11,7 +11,7 @@ class Filefinder extends Extension atom.on 'project:open', @startup startup: (@project) => - @pane = new ModalSelector _.reject @project.allURLs(), ({url}) -> + @pane = new ModalSelector => _.reject @project.allURLs(), ({url}) -> fs.isDirectory url toggle: -> diff --git a/extensions/gemfile/gemfile.coffee b/extensions/gemfile/gemfile.coffee index cd3796946..3ef704ee2 100644 --- a/extensions/gemfile/gemfile.coffee +++ b/extensions/gemfile/gemfile.coffee @@ -24,7 +24,7 @@ class Gemfile extends Extension ] gems = @gems url @project.settings.extraURLs["http://rubygems.org/"] = gems - @pane = new ModalSelector gems + @pane = new ModalSelector -> gems toggle: -> @pane?.toggle() diff --git a/src/atom/modal-selector.coffee b/src/atom/modal-selector.coffee index e502f37c6..c93e5a539 100644 --- a/src/atom/modal-selector.coffee +++ b/src/atom/modal-selector.coffee @@ -19,10 +19,11 @@ class ModalSelector extends Modal showing: false - # The items to filter. An Array of {name:name, url:url} objects. - list: [] + # A callback which should return the items to filter. + # Return should be an Array of {name, url} objects. + filterCallback: -> [] - constructor: (@list) -> + constructor: (@filterCallback) -> super @selectorHTML head = $('head')[0] @@ -47,6 +48,7 @@ class ModalSelector extends Modal show: -> super + @list = @filterCallback() @filter() $('#modal-selector input').live 'keydown.modal-selector', @onKeydown