Changed sort a little.

This commit is contained in:
Mitchell Livingston
2006-07-16 06:20:15 +00:00
parent 6e4885a27c
commit 5f5d94e3e0
2 changed files with 23 additions and 27 deletions

View File

@@ -129,7 +129,7 @@
- (void) updateTorrentHistory;
- (void) sortTorrents;
- (void) sortTorrentsRememberSelected: (BOOL) rememberSelected;
- (void) sortTorrentsIgnoreSelected;
- (void) setSort: (id) sender;
- (void) applyFilter;
- (void) setFilter: (id) sender;

View File

@@ -876,21 +876,31 @@ static void sleepCallBack(void * controller, io_service_t y,
}
- (void) sortTorrents
{
[self sortTorrentsRememberSelected: YES];
}
- (void) sortTorrentsRememberSelected: (BOOL) rememberSelected
{
//remember selected rows if needed
NSArray * selectedTorrents = nil;
if (rememberSelected)
{
int numSelected = [fTableView numberOfSelectedRows];
if (numSelected > 0 && numSelected < [fFilteredTorrents count])
selectedTorrents = [self torrentsAtIndexes: [fTableView selectedRowIndexes]];
}
int numSelected = [fTableView numberOfSelectedRows];
if (numSelected > 0 && numSelected < [fFilteredTorrents count])
selectedTorrents = [self torrentsAtIndexes: [fTableView selectedRowIndexes]];
[self sortTorrentsIgnoreSelected]; //actually sort
//set selected rows if needed
if (selectedTorrents)
{
Torrent * torrent;
NSEnumerator * enumerator = [selectedTorrents objectEnumerator];
NSMutableIndexSet * indexSet = [[NSMutableIndexSet alloc] init];
while ((torrent = [enumerator nextObject]))
[indexSet addIndex: [fFilteredTorrents indexOfObject: torrent]];
[fTableView selectRowIndexes: indexSet byExtendingSelection: NO];
[indexSet release];
}
}
- (void) sortTorrentsIgnoreSelected
{
NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey:
@"name" ascending: YES] autorelease],
* orderDescriptor = [[[NSSortDescriptor alloc] initWithKey:
@@ -927,23 +937,9 @@ static void sleepCallBack(void * controller, io_service_t y,
descriptors = [[NSArray alloc] initWithObjects: orderDescriptor, nil];
[fFilteredTorrents sortUsingDescriptors: descriptors];
[descriptors release];
[fTableView reloadData];
//set selected rows if needed
if (selectedTorrents)
{
Torrent * torrent;
NSEnumerator * enumerator = [selectedTorrents objectEnumerator];
NSMutableIndexSet * indexSet = [[NSMutableIndexSet alloc] init];
while ((torrent = [enumerator nextObject]))
[indexSet addIndex: [fFilteredTorrents indexOfObject: torrent]];
[fTableView selectRowIndexes: indexSet byExtendingSelection: NO];
[indexSet release];
}
}
- (void) setSort: (id) sender
@@ -1021,7 +1017,7 @@ static void sleepCallBack(void * controller, io_service_t y,
[fFilteredTorrents setArray: tempTorrents];
[tempTorrents release];
[self sortTorrentsRememberSelected: NO];
[self sortTorrentsIgnoreSelected];
//set selected rows if needed
if (selectedTorrents)