Changeset 502
- Timestamp:
- Jul 2, 2006, 9:46:18 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/macosx/Controller.m
r501 r502 1183 1183 else 1184 1184 { 1185 #warning redo selected torrents 1186 1185 1187 NSIndexSet * indexes = [NSKeyedUnarchiver unarchiveObjectWithData: 1186 1188 [pasteboard dataForType: TorrentTableViewDataType]]; 1187 int oldRow = [indexes firstIndex]; 1188 1189 //move torrent in array 1190 if (newRow == oldRow) 1191 return; 1192 1193 Torrent * torrent = [[fTorrents objectAtIndex: oldRow] retain]; 1194 1195 int low, high; 1196 if (newRow > oldRow) 1197 { 1198 newRow--; 1199 1200 low = oldRow; 1201 high = newRow; 1202 } 1203 else 1204 { 1189 1190 //move torrent in array 1191 NSArray * movingTorrents = [[self torrentsAtIndexes: indexes] retain]; 1192 [fTorrents removeObjectsInArray: movingTorrents]; 1193 1194 //determine the insertion index now that transfers to move have been removed 1195 int i, decrease = 0; 1196 for (i = [indexes firstIndex]; i < newRow && i != NSNotFound; i = [indexes indexGreaterThanIndex: i]) 1197 decrease++; 1198 1199 //insert objects at new location 1200 for (i = 0; i < [movingTorrents count]; i++) 1201 [fTorrents insertObject: [movingTorrents objectAtIndex: i] atIndex: newRow - decrease + i]; 1202 1203 [movingTorrents release]; 1204 1205 //redo order values 1206 int low = [indexes firstIndex], high = [indexes lastIndex]; 1207 if (newRow < low) 1205 1208 low = newRow; 1206 high = oldRow; 1207 } 1208 1209 [fTorrents removeObjectAtIndex: oldRow]; 1210 [fTorrents insertObject: torrent atIndex: newRow]; 1211 [torrent release]; 1212 1213 //redo order values 1214 int i; 1209 else if (newRow > high + 1) 1210 high = newRow - 1; 1211 else; 1212 1215 1213 for (i = low; i <= high; i++) 1216 1214 [[fTorrents objectAtIndex: i] setOrderValue: i];
Note: See TracChangeset
for help on using the changeset viewer.