Changeset 605


Ignore:
Timestamp:
Jul 16, 2006, 6:20:15 AM (16 years ago)
Author:
livings124
Message:

Changed sort a little.

Location:
trunk/macosx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.h

    r594 r605  
    130130
    131131- (void) sortTorrents;
    132 - (void) sortTorrentsRememberSelected: (BOOL) rememberSelected;
     132- (void) sortTorrentsIgnoreSelected;
    133133- (void) setSort: (id) sender;
    134134- (void) applyFilter;
  • trunk/macosx/Controller.m

    r604 r605  
    878878- (void) sortTorrents
    879879{
    880     [self sortTorrentsRememberSelected: YES];
    881 }
    882 
    883 - (void) sortTorrentsRememberSelected: (BOOL) rememberSelected
    884 {
    885880    //remember selected rows if needed
    886881    NSArray * selectedTorrents = nil;
    887     if (rememberSelected)
    888     {
    889         int numSelected = [fTableView numberOfSelectedRows];
    890         if (numSelected > 0 && numSelected < [fFilteredTorrents count])
    891             selectedTorrents = [self torrentsAtIndexes: [fTableView selectedRowIndexes]];
    892     }
    893 
    894     NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey:
    895                                             @"name" ascending: YES] autorelease],
    896                     * orderDescriptor = [[[NSSortDescriptor alloc] initWithKey:
    897                                             @"orderValue" ascending: YES] autorelease];
    898 
    899     NSArray * descriptors;
    900     if ([fSortType isEqualToString: @"Name"])
    901         descriptors = [[NSArray alloc] initWithObjects: nameDescriptor, orderDescriptor, nil];
    902     else if ([fSortType isEqualToString: @"State"])
    903     {
    904         NSSortDescriptor * stateDescriptor = [[[NSSortDescriptor alloc] initWithKey:
    905                                                 @"stateSortKey" ascending: NO] autorelease],
    906                         * progressDescriptor = [[[NSSortDescriptor alloc] initWithKey:
    907                                             @"progressSortKey" ascending: NO] autorelease];
    908        
    909         descriptors = [[NSArray alloc] initWithObjects: stateDescriptor, progressDescriptor,
    910                                                             nameDescriptor, orderDescriptor, nil];
    911     }
    912     else if ([fSortType isEqualToString: @"Progress"])
    913     {
    914         NSSortDescriptor * progressDescriptor = [[[NSSortDescriptor alloc] initWithKey:
    915                                             @"progressSortKey" ascending: YES] autorelease];
    916        
    917         descriptors = [[NSArray alloc] initWithObjects: progressDescriptor, nameDescriptor, orderDescriptor, nil];
    918     }
    919     else if ([fSortType isEqualToString: @"Date"])
    920     {
    921         NSSortDescriptor * dateDescriptor = [[[NSSortDescriptor alloc] initWithKey:
    922                                             @"date" ascending: YES] autorelease];
    923    
    924         descriptors = [[NSArray alloc] initWithObjects: dateDescriptor, orderDescriptor, nil];
    925     }
    926     else
    927         descriptors = [[NSArray alloc] initWithObjects: orderDescriptor, nil];
    928 
    929     [fFilteredTorrents sortUsingDescriptors: descriptors];
    930    
    931     [descriptors release];
    932    
    933     [fTableView reloadData];
     882    int numSelected = [fTableView numberOfSelectedRows];
     883    if (numSelected > 0 && numSelected < [fFilteredTorrents count])
     884        selectedTorrents = [self torrentsAtIndexes: [fTableView selectedRowIndexes]];
     885
     886    [self sortTorrentsIgnoreSelected]; //actually sort
    934887   
    935888    //set selected rows if needed
     
    945898        [indexSet release];
    946899    }
     900}
     901
     902- (void) sortTorrentsIgnoreSelected
     903{
     904    NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     905                                            @"name" ascending: YES] autorelease],
     906                    * orderDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     907                                            @"orderValue" ascending: YES] autorelease];
     908
     909    NSArray * descriptors;
     910    if ([fSortType isEqualToString: @"Name"])
     911        descriptors = [[NSArray alloc] initWithObjects: nameDescriptor, orderDescriptor, nil];
     912    else if ([fSortType isEqualToString: @"State"])
     913    {
     914        NSSortDescriptor * stateDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     915                                                @"stateSortKey" ascending: NO] autorelease],
     916                        * progressDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     917                                            @"progressSortKey" ascending: NO] autorelease];
     918       
     919        descriptors = [[NSArray alloc] initWithObjects: stateDescriptor, progressDescriptor,
     920                                                            nameDescriptor, orderDescriptor, nil];
     921    }
     922    else if ([fSortType isEqualToString: @"Progress"])
     923    {
     924        NSSortDescriptor * progressDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     925                                            @"progressSortKey" ascending: YES] autorelease];
     926       
     927        descriptors = [[NSArray alloc] initWithObjects: progressDescriptor, nameDescriptor, orderDescriptor, nil];
     928    }
     929    else if ([fSortType isEqualToString: @"Date"])
     930    {
     931        NSSortDescriptor * dateDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     932                                            @"date" ascending: YES] autorelease];
     933   
     934        descriptors = [[NSArray alloc] initWithObjects: dateDescriptor, orderDescriptor, nil];
     935    }
     936    else
     937        descriptors = [[NSArray alloc] initWithObjects: orderDescriptor, nil];
     938
     939    [fFilteredTorrents sortUsingDescriptors: descriptors];
     940    [descriptors release];
     941   
     942    [fTableView reloadData];
    947943}
    948944
     
    10221018    [tempTorrents release];
    10231019   
    1024     [self sortTorrentsRememberSelected: NO];
     1020    [self sortTorrentsIgnoreSelected];
    10251021   
    10261022    //set selected rows if needed
Note: See TracChangeset for help on using the changeset viewer.