Changeset 9292


Ignore:
Timestamp:
Oct 11, 2009, 1:42:10 PM (12 years ago)
Author:
livings124
Message:

#2488 when sorting by tracker, first use the tracker that comes first alphabetically

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/transmission.h

    r9274 r9292  
    12711271    tr_bool hasScraped;
    12721272
    1273     /* ex: legaltorrents.com */
     1273    /* ex: http://www.legaltorrents.com:7070 */
    12741274    char host[1024];
    12751275
  • trunk/macosx/Controller.m

    r9291 r9292  
    19421942                                                                nameDescriptor, nil];
    19431943        }
    1944         #warning broken
    19451944        else if ([sortType isEqualToString: SORT_TRACKER])
    19461945        {
    1947             NSSortDescriptor * trackerDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"trackerAddressAnnounce" ascending: asc
     1946            NSSortDescriptor * trackerDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"trackerSortKey" ascending: asc
    19481947                                                    selector: @selector(localizedCaseInsensitiveCompare:)] autorelease];
    19491948           
     
    34733472            case SORT_ACTIVITY_TAG:
    34743473                sortType = SORT_ACTIVITY;
     3474                break;
    34753475            default:
    34763476                NSAssert1(NO, @"Unknown sort tag received: %d", [menuItem tag]);
     3477                return;
    34773478        }
    34783479       
     
    41114112        if (!torrent)
    41124113        {
    4113             [pool release];
     4114            [pool drain];
    41144115           
    41154116            NSLog(@"No torrent found matching the given torrent struct from the RPC callback!");
  • trunk/macosx/Torrent.h

    r9277 r9292  
    227227
    228228- (NSInteger) stateSortKey;
     229- (NSString *) trackerSortKey;
    229230
    230231- (tr_torrent *) torrentStruct;
  • trunk/macosx/Torrent.m

    r9277 r9292  
    14771477    else //downloading
    14781478        return 2;
     1479}
     1480
     1481- (NSString *) trackerSortKey
     1482{
     1483    int count;
     1484    tr_tracker_stat * stats = tr_torrentTrackers(fHandle, &count);
     1485   
     1486    NSString * best = nil;
     1487   
     1488    for (int i=0; i < count; ++i)
     1489    {
     1490        NSString * tracker = [NSString stringWithUTF8String: stats[i].host];
     1491        if (!best || [tracker localizedCaseInsensitiveCompare: best] == NSOrderedAscending)
     1492            best = tracker;
     1493    }
     1494   
     1495    tr_torrentTrackersFree(stats, count);
     1496    return best;
    14791497}
    14801498
Note: See TracChangeset for help on using the changeset viewer.