Changeset 13158
- Timestamp:
- Jan 14, 2012, 2:28:54 AM (11 years ago)
- Location:
- trunk/macosx
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/macosx/InfoTrackersViewController.m
r12991 r13158 24 24 25 25 #import "InfoTrackersViewController.h" 26 #import "NSApplicationAdditions.h" 26 27 #import "Torrent.h" 27 28 #import "TrackerCell.h" … … 103 104 if ([fTrackerTable editedRow] == -1) 104 105 { 105 [fTrackers release];106 NSArray * oldTrackers = fTrackers; 106 107 107 108 if ([fTorrents count] == 1) … … 115 116 116 117 [fTrackerTable setTrackers: fTrackers]; 117 [fTrackerTable reloadData]; 118 119 if ([NSApp isOnLionOrBetter] && [fTrackers isEqualToArray: oldTrackers]) 120 [fTrackerTable setNeedsDisplay: YES]; 121 else 122 [fTrackerTable reloadData]; 123 124 [oldTrackers release]; 118 125 } 119 126 else … … 304 311 { 305 312 NSMutableDictionary * removeIdentifiers = [NSMutableDictionary dictionaryWithCapacity: [fTorrents count]]; 306 NSUInteger remove Count = 0;313 NSUInteger removeTrackerCount = 0; 307 314 308 315 NSIndexSet * selectedIndexes = [fTrackerTable selectedRowIndexes]; 309 316 BOOL groupSelected = NO; 317 NSUInteger groupRowIndex = NSNotFound; 318 NSMutableIndexSet * removeIndexes = [NSMutableIndexSet indexSet]; 310 319 for (NSUInteger i = 0; i < [fTrackers count]; ++i) 311 320 { … … 324 333 325 334 [removeSet addObject: [(TrackerNode *)object fullAnnounceAddress]]; 326 ++removeCount; 335 ++removeTrackerCount; 336 337 [removeIndexes addIndex: i]; 327 338 } 339 else 340 groupRowIndex = NSNotFound; //don't remove the group row 328 341 } 329 342 else 330 343 { 344 //mark the previous group row for removal, if necessary 345 if (groupRowIndex != NSNotFound) 346 [removeIndexes addIndex: groupRowIndex]; 347 331 348 groupSelected = [selectedIndexes containsIndex: i]; 332 349 if (!groupSelected && i > [selectedIndexes lastIndex]) 350 { 351 groupRowIndex = NSNotFound; 333 352 break; 334 } 335 } 353 } 354 355 groupRowIndex = i; 356 } 357 } 358 359 //mark the last group for removal, too 360 if (groupRowIndex != NSNotFound) 361 [removeIndexes addIndex: groupRowIndex]; 362 363 NSAssert2(removeTrackerCount <= [removeIndexes count], @"Marked %ld trackers to remove, but only removing %ld rows", removeTrackerCount, [removeIndexes count]); 336 364 337 365 //we might have no trackers if remove right after a failed add (race condition ftw) 338 366 #warning look into having a failed add apply right away, so that this can become an assert 339 if (remove Count == 0)367 if (removeTrackerCount == 0) 340 368 return; 341 369 … … 344 372 NSAlert * alert = [[NSAlert alloc] init]; 345 373 346 if (remove Count > 1)374 if (removeTrackerCount > 1) 347 375 { 348 376 [alert setMessageText: [NSString stringWithFormat: NSLocalizedString(@"Are you sure you want to remove %d trackers?", 349 "Remove trackers alert -> title"), remove Count]];377 "Remove trackers alert -> title"), removeTrackerCount]]; 350 378 [alert setInformativeText: NSLocalizedString(@"Once removed, Transmission will no longer attempt to contact them." 351 379 " This cannot be undone.", "Remove trackers alert -> message")]; … … 371 399 return; 372 400 } 401 402 403 if ([NSApp isOnLionOrBetter]) 404 [fTrackerTable beginUpdates]; 373 405 374 406 for (Torrent * torrent in removeIdentifiers) … … 381 413 [fTrackers addObjectsFromArray: [torrent allTrackerStats]]; 382 414 383 [fTrackerTable setTrackers: fTrackers]; 384 [fTrackerTable reloadData]; 385 [fTrackerTable deselectAll: self]; 415 if ([NSApp isOnLionOrBetter]) 416 { 417 [fTrackerTable removeRowsAtIndexes: removeIndexes withAnimation: NSTableViewAnimationSlideLeft]; 418 419 [fTrackerTable setTrackers: fTrackers]; 420 421 [fTrackerTable endUpdates]; 422 } 423 else 424 { 425 [fTrackerTable setTrackers: fTrackers]; 426 427 [fTrackerTable reloadData]; 428 [fTrackerTable deselectAll: self]; 429 } 386 430 387 431 [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateUI" object: nil]; //incase sort by tracker -
trunk/macosx/TrackerNode.h
r11617 r13158 37 37 - (id) initWithTrackerStat: (tr_tracker_stat *) stat torrent: (Torrent *) torrent; 38 38 39 - (BOOL) isEqual: (id) object; 40 39 41 - (NSString *) host; 40 42 - (NSString *) fullAnnounceAddress; -
trunk/macosx/TrackerNode.m
r12940 r13158 48 48 //this object is essentially immutable after initial setup 49 49 return [self retain]; 50 } 51 52 - (BOOL) isEqual: (id) object 53 { 54 if (self == object) 55 return YES; 56 57 if (![object isKindOfClass: [self class]]) 58 return NO; 59 60 return [self tier] == [object tier] && [[self fullAnnounceAddress] isEqualToString: [object fullAnnounceAddress]]; 50 61 } 51 62
Note: See TracChangeset
for help on using the changeset viewer.