Remember selected rows after drag (same as when sorting).

This commit is contained in:
Mitchell Livingston 2006-07-02 21:53:36 +00:00
parent 4f7ba57d5a
commit 47e5c5547f
1 changed files with 18 additions and 1 deletions

View File

@ -1182,7 +1182,11 @@ static void sleepCallBack(void * controller, io_service_t y,
pathsMatchingExtensions: [NSArray arrayWithObject: @"torrent"]]];
else
{
#warning redo selected torrents
//remember selected rows if needed
NSArray * selectedTorrents = nil;
int numSelected = [fTableView numberOfSelectedRows];
if (numSelected > 0 && numSelected < [fTorrents count])
selectedTorrents = [self torrentsAtIndexes: [fTableView selectedRowIndexes]];
NSIndexSet * indexes = [NSKeyedUnarchiver unarchiveObjectWithData:
[pasteboard dataForType: TorrentTableViewDataType]];
@ -1214,6 +1218,19 @@ static void sleepCallBack(void * controller, io_service_t y,
[[fTorrents objectAtIndex: i] setOrderValue: i];
[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: [fTorrents indexOfObject: torrent]];
[fTableView selectRowIndexes: indexSet byExtendingSelection: NO];
[indexSet release];
}
}
return YES;