From 8e433ae3ba0a48c8444654e59f5dcf40b4cb8045 Mon Sep 17 00:00:00 2001 From: Allan Odgaard Date: Tue, 29 Jan 2013 15:22:47 +0100 Subject: [PATCH] =?UTF-8?q?View=20=E2=86=92=20Show=20Invisibles=20now=20wo?= =?UTF-8?q?rk=20for=20file=20browser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With focus in the file browser this menu item can now be used to toggle wether or not the include/exclude patterns should be ignored (causing everything to be shown, when ignored). --- .../OakFileBrowser/src/OakFileBrowser.h | 1 + .../OakFileBrowser/src/OakFileBrowser.mm | 28 +++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Frameworks/OakFileBrowser/src/OakFileBrowser.h b/Frameworks/OakFileBrowser/src/OakFileBrowser.h index 24781a57..d54d7226 100644 --- a/Frameworks/OakFileBrowser/src/OakFileBrowser.h +++ b/Frameworks/OakFileBrowser/src/OakFileBrowser.h @@ -30,6 +30,7 @@ PUBLIC @interface OakFileBrowser : NSResponder - (IBAction)reload:(id)sender; - (IBAction)deselectAll:(id)sender; +- (IBAction)toggleShowInvisibles:(id)sender; - (IBAction)goBack:(id)sender; - (IBAction)goForward:(id)sender; diff --git a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm index cef5a59b..95428549 100644 --- a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm +++ b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm @@ -296,6 +296,23 @@ static NSMutableSet* SymmetricDifference (NSMutableSet* aSet, NSMutableSet* anot env["PWD"] = [dir fileSystemRepresentation]; } +- (BOOL)showExcludedItems +{ + return (_dataSourceOptions & kFSDataSourceOptionIncludeHidden) == kFSDataSourceOptionIncludeHidden; +} + +- (void)setShowExcludedItems:(BOOL)flag +{ + if(self.showExcludedItems == flag) + return; + + if(flag) + _dataSourceOptions |= kFSDataSourceOptionIncludeHidden; + else _dataSourceOptions &= ~kFSDataSourceOptionIncludeHidden; + + [self reload:self]; +} + // =================== // = History support = // =================== @@ -875,6 +892,11 @@ static NSMutableSet* SymmetricDifference (NSMutableSet* aSet, NSMutableSet* anot [_outlineView deselectAll:sender]; } +- (IBAction)toggleShowInvisibles:(id)sender +{ + self.showExcludedItems = !self.showExcludedItems; +} + - (IBAction)goToParentFolder:(id)sender { [self selectURL:_url withParentURL:ParentForURL(_url)]; } - (IBAction)goToComputer:(id)sender { [self goToURL:kURLLocationComputer]; } - (IBAction)goToHome:(id)sender { [self goToURL:kURLLocationHome]; } @@ -949,7 +971,9 @@ static NSMutableSet* SymmetricDifference (NSMutableSet* aSet, NSMutableSet* anot return NO; else if([item action] == @selector(editSelectedEntries:)) return selectedFiles == 1; - else - return YES; + else if([item action] == @selector(toggleShowInvisibles:)) + [item setState:self.showExcludedItems ? NSOnState : NSOffState]; + + return YES; } @end