diff --git a/macosx/FileOutlineView.m b/macosx/FileOutlineView.m index a858e5b7d..9ee4b69bc 100644 --- a/macosx/FileOutlineView.m +++ b/macosx/FileOutlineView.m @@ -109,12 +109,12 @@ [fNormalColor set]; else { - NSArray * priorities = [torrent filePrioritiesForIndexes: [item objectForKey: @"Indexes"]]; + NSSet * priorities = [torrent filePrioritiesForIndexes: [item objectForKey: @"Indexes"]]; if ([priorities count] == 0) [fNormalColor set]; else { - int priority = [[priorities objectAtIndex: 0] intValue]; + int priority = [[priorities anyObject] intValue]; if (priority == TR_PRI_LOW) [fLowPriorityColor set]; else if (priority == TR_PRI_HIGH) @@ -148,10 +148,10 @@ item = [self itemAtRow: i]; if (![[item objectForKey: @"IsFolder"] boolValue]) { - NSArray * priorities = [torrent filePrioritiesForIndexes: [item objectForKey: @"Indexes"]]; + NSSet * priorities = [torrent filePrioritiesForIndexes: [item objectForKey: @"Indexes"]]; if ([priorities count] == 1) { - int priority = [[priorities objectAtIndex: 0] intValue]; + int priority = [[priorities anyObject] intValue]; if (priority == TR_PRI_LOW) [fLowPriorityColor set]; else if (priority == TR_PRI_HIGH) diff --git a/macosx/FilePriorityCell.m b/macosx/FilePriorityCell.m index a874a7f32..f3713ba13 100644 --- a/macosx/FilePriorityCell.m +++ b/macosx/FilePriorityCell.m @@ -52,14 +52,14 @@ - (void) drawWithFrame: (NSRect) cellFrame inView: (NSView *) controlView { Torrent * torrent = [(InfoWindowController *)[[[self controlView] window] windowController] selectedTorrent]; - NSIndexSet * indexSet = [fItem objectForKey: @"Indexes"]; + NSSet * priorities = [torrent filePrioritiesForIndexes: [fItem objectForKey: @"Indexes"]]; - if (![torrent canChangeDownloadCheckForFiles: indexSet]) + if ([priorities count] == 0) return; - BOOL low = [torrent hasFilePriority: TR_PRI_LOW forIndexes: indexSet], - normal = [torrent hasFilePriority: TR_PRI_NORMAL forIndexes: indexSet], - high = [torrent hasFilePriority: TR_PRI_HIGH forIndexes: indexSet]; + BOOL low = [priorities containsObject: [NSNumber numberWithInt: TR_PRI_LOW]], + normal = [priorities containsObject: [NSNumber numberWithInt: TR_PRI_NORMAL]], + high = [priorities containsObject: [NSNumber numberWithInt: TR_PRI_HIGH]]; FileOutlineView * view = (FileOutlineView *)[self controlView]; int row = [view hoverRow]; diff --git a/macosx/InfoWindowController.m b/macosx/InfoWindowController.m index a926bb319..c0eac9107 100644 --- a/macosx/InfoWindowController.m +++ b/macosx/InfoWindowController.m @@ -932,7 +932,7 @@ } else if ([ident isEqualToString: @"Priority"]) { - NSArray * priorities = [[fTorrents objectAtIndex: 0] filePrioritiesForIndexes: [item objectForKey: @"Indexes"]]; + NSSet * priorities = [[fTorrents objectAtIndex: 0] filePrioritiesForIndexes: [item objectForKey: @"Indexes"]]; int count = [priorities count]; if (count == 0) @@ -941,7 +941,7 @@ return NSLocalizedString(@"Multiple Priorities", "Inspector -> files tab -> tooltip"); else { - int priority = [[priorities objectAtIndex: 0] intValue]; + int priority = [[priorities anyObject] intValue]; if (priority == TR_PRI_LOW) return NSLocalizedString(@"Low Priority", "Inspector -> files tab -> tooltip"); else if (priority == TR_PRI_HIGH) diff --git a/macosx/Torrent.h b/macosx/Torrent.h index 9e9e48fcc..2aa5114e5 100644 --- a/macosx/Torrent.h +++ b/macosx/Torrent.h @@ -206,7 +206,7 @@ - (void) setFileCheckState: (int) state forIndexes: (NSIndexSet *) indexSet; - (void) setFilePriority: (int) priority forIndexes: (NSIndexSet *) indexSet; - (BOOL) hasFilePriority: (int) priority forIndexes: (NSIndexSet *) indexSet; -- (NSArray *) filePrioritiesForIndexes: (NSIndexSet *) indexSet; +- (NSSet *) filePrioritiesForIndexes: (NSIndexSet *) indexSet; - (NSDate *) dateAdded; - (NSDate *) dateCompleted; diff --git a/macosx/Torrent.m b/macosx/Torrent.m index 6d0ea3a21..c13216745 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -1352,10 +1352,10 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 return NO; } -- (NSArray *) filePrioritiesForIndexes: (NSIndexSet *) indexSet +- (NSSet *) filePrioritiesForIndexes: (NSIndexSet *) indexSet { BOOL low = NO, normal = NO, high = NO; - NSMutableArray * priorities = [NSMutableArray arrayWithCapacity: 3]; + NSMutableSet * priorities = [NSMutableSet setWithCapacity: 3]; int index, priority; for (index = [indexSet firstIndex]; index != NSNotFound; index = [indexSet indexGreaterThanIndex: index]) @@ -1366,28 +1366,24 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 priority = tr_torrentGetFilePriority(fHandle, index); if (priority == TR_PRI_LOW) { - if (!low) - low = YES; - else + if (low) continue; + low = YES; } else if (priority == TR_PRI_HIGH) { - if (!high) - high = YES; - else + if (high) continue; + high = YES; } else { - if (!normal) - normal = YES; - else + if (normal) continue; + normal = YES; } [priorities addObject: [NSNumber numberWithInt: priority]]; - if (low && normal && high) break; }