From 417ecef6243408179f9e22b1832d18684b9b1c42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20Ma=CC=8Artensson?= Date: Thu, 13 Dec 2012 15:50:53 +0100 Subject: [PATCH] Refactored calculations of touched filebrowser items into its own method --- .../OakFileBrowser/src/OakFileBrowser.mm | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm index acca2d4a..f419d33f 100644 --- a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm +++ b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm @@ -221,14 +221,8 @@ static NSMutableSet* SymmetricDifference (NSMutableSet* aSet, NSMutableSet* anot NSSet* symmetricDifference = SymmetricDifference([NSMutableSet setWithArray:outlineViewDelegate.openURLs], [NSMutableSet setWithArray:newOpenURLs]); // make a note of files in view, with changed open state - NSMutableIndexSet* updateRows = [NSMutableIndexSet indexSet]; - NSInteger len = [view.outlineView numberOfRows]; - for(NSInteger rowIndex = 0; rowIndex < len; ++rowIndex) - { - NSURL* file = [[view.outlineView itemAtRow:rowIndex] url]; - if([symmetricDifference containsObject:file]) - [updateRows addIndex:rowIndex]; - } + NSIndexSet* updateRows = [self indexSetforURLs:symmetricDifference]; + outlineViewDelegate.openURLs = newOpenURLs; // make sure all items are accounted for @@ -255,6 +249,21 @@ static NSMutableSet* SymmetricDifference (NSMutableSet* aSet, NSMutableSet* anot [view.outlineView reloadData]; } +- (NSIndexSet*)indexSetforURLs:(NSSet*)urls +{ + // make a note of files in view, with changed open state + NSMutableIndexSet* updateRows = [NSMutableIndexSet indexSet]; + NSInteger len = [view.outlineView numberOfRows]; + for(int rowIndex = 0; rowIndex < len ; rowIndex++) + { + NSURL* file = [[view.outlineView itemAtRow:rowIndex] url]; + if([urls containsObject:file]) + { + [updateRows addIndex:rowIndex]; + } + } + return updateRows; +} // ====================== // = History Controller = // ======================