Hide/show ignored entries in tree view based on project setting

This commit is contained in:
Kevin Sawicki
2012-11-19 11:05:44 -08:00
parent a249b81c4d
commit ce364757b1
3 changed files with 28 additions and 4 deletions

View File

@@ -850,3 +850,21 @@ describe "TreeView", ->
waitsFor "directory view contens to refresh", ->
treeView.root.entries.find('.entry').length == entriesCountBefore
describe "ignored files", ->
[ignoreFile] = []
beforeEach ->
ignoreFile = fs.join(require.resolve('fixtures/tree-view'), '.gitignore')
fs.write(ignoreFile, 'tree-view.js')
project.setHideIgnoredFiles(false)
afterEach ->
fs.remove(ignoreFile) if fs.exists(ignoreFile)
it "toggles display of ignored path when setting is toggled", ->
expect(treeView.find('.file:contains(tree-view.js)').length).toBe 1
rootView.trigger 'window:toggle-ignored-files'
expect(treeView.find('.file:contains(tree-view.js)').length).toBe 0
rootView.trigger 'window:toggle-ignored-files'
expect(treeView.find('.file:contains(tree-view.js)').length).toBe 1

View File

@@ -15,8 +15,9 @@ class DirectoryView extends View
directory: null
entries: null
header: null
project: null
initialize: ({@directory, isExpanded} = {}) ->
initialize: ({@directory, isExpanded, @project} = {}) ->
@expand() if isExpanded
@disclosureArrow.on 'click', => @toggleExpansion()
@directoryName.addClass('ignored') if new Git(@directory.getPath()).isPathIgnored(@directory.getPath())
@@ -24,13 +25,17 @@ class DirectoryView extends View
getPath: ->
@directory.path
isPathIgnored: (path) ->
@project.hideIgnoredFiles and @project.repo?.isPathIgnored(path)
buildEntries: ->
@unwatchDescendantEntries()
@entries?.remove()
@entries = $$ -> @ol class: 'entries'
for entry in @directory.getEntries()
continue if @isPathIgnored(entry.path)
if entry instanceof Directory
@entries.append(new DirectoryView(directory: entry, isExpanded: false))
@entries.append(new DirectoryView(directory: entry, isExpanded: false, project: @project))
else
@entries.append(new FileView(entry))
@append(@entries)

View File

@@ -29,7 +29,7 @@ class TreeView extends ScrollView
@content: (rootView) ->
@div class: 'tree-view tool-panel', tabindex: -1, =>
if rootView.project.getRootDirectory()
@subview 'root', new DirectoryView(directory: rootView.project.getRootDirectory(), isExpanded: true)
@subview 'root', new DirectoryView(directory: rootView.project.getRootDirectory(), isExpanded: true, project: rootView.project)
@deserialize: (state, rootView) ->
treeView = new TreeView(rootView)
@@ -66,6 +66,7 @@ class TreeView extends ScrollView
@rootView.command 'tree-view:toggle', => @toggle()
@rootView.command 'tree-view:reveal-active-file', => @revealActiveFile()
@rootView.on 'active-editor-path-change', => @selectActiveFile()
@rootView.on 'window:toggle-ignored-files', => @updateRoot()
@rootView.project.on 'path-change', => @updateRoot()
@selectEntry(@root) if @root
@@ -122,7 +123,7 @@ class TreeView extends ScrollView
updateRoot: ->
@root?.remove()
if @rootView.project.getRootDirectory()
@root = new DirectoryView(directory: @rootView.project.getRootDirectory(), isExpanded: true)
@root = new DirectoryView(directory: @rootView.project.getRootDirectory(), isExpanded: true, project: @rootView.project)
@append(@root)
else
@root = null