change the code for determining which trackers to remove

This commit is contained in:
Mitchell Livingston 2010-01-07 01:52:15 +00:00
parent 0d91f3cadf
commit 3a1c9f2cd7
1 changed files with 6 additions and 10 deletions

View File

@ -1744,22 +1744,18 @@ typedef enum
NSMutableIndexSet * removeIndexes = [NSMutableIndexSet indexSet];
NSIndexSet * selectedIndexes = [fTrackerTable selectedRowIndexes];
for (NSUInteger i=0, trackerIndex = 0; i <= [selectedIndexes lastIndex]; ++i)
BOOL groupSelected = NO;
for (NSUInteger i = 0, trackerIndex = 0; i < [fTrackers count]; ++i)
{
const BOOL isSelected = [selectedIndexes containsIndex: i];
if ([[fTrackers objectAtIndex: i] isKindOfClass: [NSNumber class]])
{
if (isSelected)
{
for (++i; i < [fTrackers count] && ![[fTrackers objectAtIndex: i] isKindOfClass: [NSNumber class]]; ++i)
[removeIndexes addIndex: trackerIndex++];
--i;
}
groupSelected = [selectedIndexes containsIndex: i];
if (!groupSelected && i > [selectedIndexes lastIndex])
break;
}
else
{
if (isSelected)
if (groupSelected || [selectedIndexes containsIndex: i])
[removeIndexes addIndex: trackerIndex];
++trackerIndex;
}