Fixed exit Search issues

Exiting search now clears matching entries when no group was preselected (use case is opening a DB and then search without selecting a group)
Deleting a group now correctly deselects the group. Previously the inspector still showed the group, but the outline view did not show any selection.
This commit is contained in:
michael starke
2014-08-18 12:23:11 +02:00
parent 6231e192af
commit 019e64a926
2 changed files with 15 additions and 3 deletions

View File

@@ -328,8 +328,10 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell";
- (void)_didChangeCurrentItem:(NSNotification *)notification { - (void)_didChangeCurrentItem:(NSNotification *)notification {
MPDocument *document = [notification object]; MPDocument *document = [notification object];
if(!document.selectedGroup) { if(!document.selectedGroup && !document.hasSearch) {
/* TODO: handle deleted item */ /* no group selection out of search is wrong */
[self.entryArrayController unbind:NSContentArrayBinding];
[self.entryArrayController setContent:nil];
return; return;
} }
/* /*
@@ -384,6 +386,10 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell";
[[self.entryTable tableColumnWithIdentifier:MPEntryTableParentColumnIdentifier] setHidden:YES]; [[self.entryTable tableColumnWithIdentifier:MPEntryTableParentColumnIdentifier] setHidden:YES];
MPDocument *document = [[self windowController] document]; MPDocument *document = [[self windowController] document];
document.selectedItem = document.selectedGroup; document.selectedItem = document.selectedGroup;
if( nil == document.selectedItem && nil == document.selectedGroup ) {
[self.entryArrayController unbind:NSContentArrayBinding];
[self.entryArrayController setContent:nil];
}
[self _updateContextBar]; [self _updateContextBar];
} }

View File

@@ -247,7 +247,6 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
id representedObject = [item representedObject]; id representedObject = [item representedObject];
if([representedObject isKindOfClass:[KPKGroup class]]) { if([representedObject isKindOfClass:[KPKGroup class]]) {
KPKGroup *group = (KPKGroup *)representedObject; KPKGroup *group = (KPKGroup *)representedObject;
NSLog(@"IndexPath for %@: %@ vs. %@", group.name, [item indexPath], [group indexPath]);
group.isExpanded = YES; group.isExpanded = YES;
} }
} }
@@ -261,6 +260,13 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
} }
} }
- (void)outlineView:(NSOutlineView *)outlineView didRemoveRowView:(NSTableRowView *)rowView forRow:(NSInteger)row {
/* Deletion of an item */
if(row == -1) {
[self outlineViewSelectionDidChange:nil];
}
}
#pragma mark Validation #pragma mark Validation
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem { - (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
MPDocument *document = [[self windowController] document]; MPDocument *document = [[self windowController] document];