Skip to content

Commit

Permalink
p∫∫∫∫∫∫∫∫t! I hear ingredients is close to beta. Dont tell anyone.
Browse files Browse the repository at this point in the history
  • Loading branch information
atg committed Apr 6, 2010
1 parent e90fd8e commit 703c3e7
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 15 deletions.
52 changes: 41 additions & 11 deletions IGKArrayController.m
Original file line number Diff line number Diff line change
Expand Up @@ -91,29 +91,59 @@ - (void)fetch:(void (^)(NSArray *managedObjectIDs, BOOL fetchContainsVip))comple
}
- (void)refresh
{
[self refreshAndSelectFirst:YES renderSelection:YES];
[self refreshAndSelectIndex:0 renderSelection:YES];
}
- (void)refreshAndSelectFirst:(BOOL)selectFirst renderSelection:(BOOL)renderSelection

//This method is PRIVATE!
- (void)fetchFromRefresh:(NSManagedObjectContext *)ctx managedObjectIDs:(NSArray *)managedObjectIDs fetchContainsVip:(BOOL)fetchContainsVip
{
fetchContainsVipObject = fetchContainsVip;

fetchedObjects = [[NSMutableArray alloc] initWithCapacity:[managedObjectIDs count]];
for (NSManagedObjectID *objID in managedObjectIDs)
{
[fetchedObjects addObject:[ctx objectWithID:objID]];
}

[tableView reloadData];
}

- (void)refreshAndSelectObject:(IGKDocRecordManagedObject *)obj renderSelection:(BOOL)renderSelection
{
NSManagedObjectContext *ctx = [[[NSApp delegate] kitController] managedObjectContext];

//Fetch a new list of objects and refresh the table
[self fetch:^ (NSArray *managedObjectIDs, BOOL fetchContainsVip) {
fetchContainsVipObject = fetchContainsVip;
[self fetchFromRefresh:ctx managedObjectIDs:managedObjectIDs fetchContainsVip:fetchContainsVip];

fetchedObjects = [[NSMutableArray alloc] initWithCapacity:[managedObjectIDs count]];
for (NSManagedObjectID *objID in managedObjectIDs)
if (obj)
{
[fetchedObjects addObject:[ctx objectWithID:objID]];
NSUInteger ind = [fetchedObjects indexOfObject:obj];
if (ind != NSNotFound)
{
//Select the first row, scroll to it, and notify the delegate
[tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:ind] byExtendingSelection:NO];;
[tableView scrollRowToVisible:ind];

if (renderSelection)
[[tableView delegate] tableViewSelectionDidChange:[NSNotification notificationWithName:NSTableViewSelectionDidChangeNotification object:tableView]];
}
}
}];
}
- (void)refreshAndSelectIndex:(NSInteger)idx renderSelection:(BOOL)renderSelection
{
NSManagedObjectContext *ctx = [[[NSApp delegate] kitController] managedObjectContext];

//Fetch a new list of objects and refresh the table
[self fetch:^(NSArray *managedObjectIDs, BOOL fetchContainsVip) {
[self fetchFromRefresh:ctx managedObjectIDs:managedObjectIDs fetchContainsVip:fetchContainsVip];

[tableView reloadData];

if (selectFirst)
if (idx != -1)
{
//Select the first row, scroll to it, and notify the delegate
[tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO];;
[tableView scrollRowToVisible:0];
[tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:idx] byExtendingSelection:NO];;
[tableView scrollRowToVisible:idx];

if (renderSelection)
[[tableView delegate] tableViewSelectionDidChange:[NSNotification notificationWithName:NSTableViewSelectionDidChangeNotification object:tableView]];
Expand Down
8 changes: 4 additions & 4 deletions IGKWindowController.m
Original file line number Diff line number Diff line change
Expand Up @@ -1009,18 +1009,18 @@ - (void)loadDocs
[self loadDocIntoBrowser];
[self reloadTableOfContents];
}
- (void)restoreAdvancedSearchStateIntoTwoUp:(BOOL)selectFirst
- (void)restoreAdvancedSearchStateIntoTwoUp:(BOOL)selectSelected
{
//Restore the predicate, etc into the side search's array controlller
[sideSearchController setPredicate:[advancedController predicate]];
sideSearchController.vipObject = [advancedController selection];

[sideSearchViewField setStringValue:[searchViewField stringValue]];

if (selectFirst)
[sideSearchController refreshAndSelectFirst:YES renderSelection:NO];
if (selectSelected)
[sideSearchController refreshAndSelectObject:[advancedController selection] renderSelection:NO];
else
[sideSearchController refreshAndSelectFirst:NO renderSelection:NO];
[sideSearchController refreshAndSelectIndex:-1 renderSelection:NO];
}

- (IGKHTMLDisplayTypeMask)tableOfContentsSelectedDisplayTypeMask
Expand Down

0 comments on commit 703c3e7

Please sign in to comment.