From 64ff8a53e751cddf9197009ebf7e9aa26d778f80 Mon Sep 17 00:00:00 2001 From: Allan Odgaard Date: Fri, 17 Aug 2012 22:49:58 +0200 Subject: [PATCH] Go to SCM Status is now a toggle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is implemented by invoking “go back” if already showing an SCM URL. If there is no history (unlikely) then we instead “go up (parent)” which should take us to the root of the repository. --- Frameworks/OakFileBrowser/src/OakFileBrowser.mm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm index 1364995c..92042c56 100644 --- a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm +++ b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm @@ -831,12 +831,21 @@ static struct data_source_options_map_t { NSString* const name; NSUInteger flag; - (IBAction)goToSCMDataSource:(id)sender { - for(NSURL* selectedURL in self.selectedURLs) + if([url.scheme isEqualToString:@"scm"]) { - if([selectedURL isFileURL] && path::is_directory([[selectedURL path] fileSystemRepresentation])) - return [self pushURL:[FSSCMDataSource scmURLWithPath:[selectedURL path]]]; + if(historyController.previousURL) + [self goBack:sender]; + else [self goToParentFolder:sender]; + } + else + { + for(NSURL* selectedURL in self.selectedURLs) + { + if([selectedURL isFileURL] && path::is_directory([[selectedURL path] fileSystemRepresentation])) + return [self pushURL:[FSSCMDataSource scmURLWithPath:[selectedURL path]]]; + } + [self pushURL:[FSSCMDataSource scmURLWithPath:[url path]]]; } - [self pushURL:[FSSCMDataSource scmURLWithPath:[url path]]]; } - (IBAction)goBack:(id)sender { if(historyController.previousURL) { [self setURL:historyController.previousURL]; [historyController retreat:self]; [outlineViewDelegate scrollToOffset:historyController.currentURLScrollOffset]; [self updateView]; } }