better encapsulate the collapsed group values

This commit is contained in:
Mitchell Livingston 2008-02-07 16:20:24 +00:00
parent 940ac6a52a
commit dd0bf1fa8f
4 changed files with 14 additions and 16 deletions

View File

@ -1948,19 +1948,16 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
[fTableView selectValues: selectedValues];
//reset expanded/collapsed rows
#warning redo to not require storing an indexset?
if (groupRows && [fDisplayedTorrents count] > 0 && [NSApp isOnLeopardOrBetter])
{
NSIndexSet * collapsed = [fTableView collapsedGroupsIndexes];
enumerator = [fDisplayedTorrents objectEnumerator];
NSDictionary * dict;
while ((dict = [enumerator nextObject]))
{
int value = [[dict objectForKey: @"Group"] intValue];
if ([collapsed containsIndex: value >= 0 ? value : INT_MAX])
[fTableView collapseItem: dict];
else
if ([fTableView isGroupCollapsed: [[dict objectForKey: @"Group"] intValue]])
[fTableView expandItem: dict];
else
[fTableView collapseItem: dict];
}
}
@ -2155,8 +2152,6 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
- (void) setGroup: (id) sender
{
NSIndexSet * collapsedGroupsIndexes = [fTableView collapsedGroupsIndexes];
NSEnumerator * enumerator = [[fTableView selectedTorrents] objectEnumerator];
Torrent * torrent;
while ((torrent = [enumerator nextObject]))

View File

@ -459,8 +459,6 @@
BOOL minimal = [fDefaults boolForKey: @"SmallView"];
#warning use inset instead of edges
//group coloring
NSRect iconRect = [self iconRectForBounds: cellFrame];

View File

@ -51,7 +51,7 @@
NSTimer * fPiecesBarTimer;
}
- (NSIndexSet *) collapsedGroupsIndexes;
- (BOOL) isGroupCollapsed: (int) value;
- (void) removeCollapsedGroup: (int) value;
- (void) removeAllCollapsedGroups;

View File

@ -28,6 +28,8 @@
#import "NSApplicationAdditions.h"
#import "NSMenuAdditions.h"
#define MAX_GROUP (INT_MAX-100)
#define ACTION_MENU_GLOBAL_TAG 101
#define ACTION_MENU_UNLIMITED_TAG 102
#define ACTION_MENU_LIMIT_TAG 103
@ -90,15 +92,18 @@
[super dealloc];
}
- (NSIndexSet *) collapsedGroupsIndexes
- (BOOL) isGroupCollapsed: (int) value
{
return fCollapsedGroups;
if (value < 0)
value = MAX_GROUP;
return [fCollapsedGroups containsIndex: value];
}
- (void) removeCollapsedGroup: (int) value
{
if (value < 0)
value = INT_MAX;
value = MAX_GROUP;
[fCollapsedGroups removeIndex: value];
}
@ -270,7 +275,7 @@
- (void) outlineViewItemDidExpand: (NSNotification *) notification
{
int value = [[[[notification userInfo] objectForKey: @"NSObject"] objectForKey: @"Group"] intValue];
[fCollapsedGroups removeIndex: value >= 0 ? value : INT_MAX];
[fCollapsedGroups removeIndex: value >= 0 ? value : MAX_GROUP];
[[NSNotificationCenter defaultCenter] postNotificationName: @"OutlineExpandCollapse" object: self];
}
@ -278,7 +283,7 @@
- (void) outlineViewItemDidCollapse: (NSNotification *) notification
{
int value = [[[[notification userInfo] objectForKey: @"NSObject"] objectForKey: @"Group"] intValue];
[fCollapsedGroups addIndex: value >= 0 ? value : INT_MAX];
[fCollapsedGroups addIndex: value >= 0 ? value : MAX_GROUP];
[[NSNotificationCenter defaultCenter] postNotificationName: @"OutlineExpandCollapse" object: self];
}