--- a/Source/AIListWindowController.m Sat Jun 02 10:51:31 2012 -0400
+++ b/Source/AIListWindowController.m Sat Jun 02 14:45:40 2012 -0400
@@ -1692,6 +1692,24 @@
+- (void)expandGroupsForFiltering:(BOOL)state + for (AIListObject *listObject in [self.contactList containedObjects]) { + if ([listObject isKindOfClass:[AIListGroup class]] && + ((!state && [listObject boolValueForProperty:@"ExpandedByFiltering"]) || + (state && [(AIListGroup *)listObject isExpanded] == NO))) { + [listObject setValue:[NSNumber numberWithBool:state] forProperty:@"ExpandedByFiltering" notify:NotifyNever]; + filterBarExpandedGroups = state; + [contactListView reloadData]; * @brief Filter contacts from the search field
@@ -1703,35 +1721,8 @@
if (![sender isKindOfClass:[NSSearchField class]])
- if (!filterBarExpandedGroups && ![[sender stringValue] isEqualToString:@""]) {
- for (AIListObject *listObject in [self.contactList containedObjects]) {
- if ([listObject isKindOfClass:[AIListGroup class]] && [(AIListGroup *)listObject isExpanded] == NO) {
- [listObject setValue:[NSNumber numberWithBool:YES] forProperty:@"ExpandedByFiltering" notify:NotifyNever];
- filterBarExpandedGroups = YES;
- [contactListView reloadData];
- } else if (filterBarExpandedGroups && [[sender stringValue] isEqualToString:@""]) {
- for (AIListObject *listObject in [self.contactList containedObjects]) {
- if ([listObject isKindOfClass:[AIListGroup class]] && [listObject boolValueForProperty:@"ExpandedByFiltering"]) {
- [listObject setValue:[NSNumber numberWithBool:NO] forProperty:@"ExpandedByFiltering" notify:NotifyNever];
- filterBarExpandedGroups = NO;
- [contactListView reloadData];
+ if (filterBarExpandedGroups && [[sender stringValue] isEqualToString:@""]) + [self expandGroupsForFiltering:NO]; if ([[AIContactHidingController sharedController] filterContacts:[sender stringValue]]) {
// Select the first contact; we're guaranteed at least one visible contact.
@@ -1751,6 +1742,9 @@
+ if (!filterBarExpandedGroups && ![[sender stringValue] isEqualToString:@""]) + [self expandGroupsForFiltering:YES];