Changeset 6260


Ignore:
Timestamp:
Jun 27, 2008, 5:15:50 AM (13 years ago)
Author:
livings124
Message:

add a comparison method for the transfer names to sort the exact same way the Finder does

Location:
trunk/macosx
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.m

    r6257 r6260  
    18211821    {
    18221822        NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"name" ascending: asc
    1823                                                 selector: @selector(localizedCaseInsensitiveCompare:)] autorelease];
     1823                                                selector: @selector(compareFinder:)] autorelease];
    18241824       
    18251825        descriptors = [[NSArray alloc] initWithObjects: nameDescriptor, orderDescriptor, nil];
     
    18281828    {
    18291829        NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"name" ascending: asc
    1830                                                 selector: @selector(localizedCaseInsensitiveCompare:)] autorelease],
     1830                                                selector: @selector(compareFinder:)] autorelease],
    18311831                        * stateDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"stateSortKey" ascending: !asc] autorelease],
    18321832                        * progressDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"progress" ascending: !asc] autorelease],
     
    18391839    {
    18401840        NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"name" ascending: asc
    1841                                                 selector: @selector(localizedCaseInsensitiveCompare:)] autorelease],
     1841                                                selector: @selector(compareFinder:)] autorelease],
    18421842                        * progressDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"progress" ascending: asc] autorelease],
    18431843                        * ratioProgressDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"progressStopRatio"
     
    18511851    {
    18521852        NSSortDescriptor * nameDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"name" ascending: asc
    1853                                                 selector: @selector(localizedCaseInsensitiveCompare:)] autorelease],
     1853                                                selector: @selector(compareFinder:)] autorelease],
    18541854                        * trackerDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"trackerAddressAnnounce" ascending: asc
    18551855                                                selector: @selector(localizedCaseInsensitiveCompare:)] autorelease];
  • trunk/macosx/English.lproj/InfoWindow.xib

    r6258 r6260  
    21422142                                                                <string key="NSFrame">{{1, 1}, {360, 143}}</string>
    21432143                                                                <reference key="NSSuperview" ref="754568592"/>
     2144                                                                <reference key="NSNextKeyView" ref="423972458"/>
    21442145                                                                <reference key="NSDocView" ref="423972458"/>
    21452146                                                                <reference key="NSBGColor" ref="987864771"/>
     
    21702171                                                <string key="NSFrame">{{10, 202}, {362, 145}}</string>
    21712172                                                <reference key="NSSuperview" ref="296911506"/>
     2173                                                <reference key="NSNextKeyView" ref="198254095"/>
    21722174                                                <int key="NSsFlags">530</int>
    21732175                                                <reference key="NSVScroller" ref="964808471"/>
     
    23232325                                                                                                        <string key="NSKey">Client</string>
    23242326                                                                                                        <bool key="NSAscending">YES</bool>
    2325                                                                                                         <string key="NSSelector">localizedCaseInsensitiveCompare:</string>
     2327                                                                                                        <string key="NSSelector">compareFinder:</string>
    23262328                                                                                                </object>
    23272329                                                                                        </object>
     
    86908692                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    86918693                                        <reference ref="9"/>
    8692                                         <string>{{634, 496}, {360, 342}}</string>
     8694                                        <string>{{440, 490}, {360, 342}}</string>
    86938695                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    86948696                                        <reference ref="9"/>
  • trunk/macosx/MessageWindow.xib

    r6257 r6260  
    17531753                                                                                                                <string key="NSKey">Name</string>
    17541754                                                                                                                <bool key="NSAscending">YES</bool>
    1755                                                                                                                 <string key="NSSelector">localizedCaseInsensitiveCompare:</string>
     1755                                                                                                                <string key="NSSelector">compareFinder:</string>
    17561756                                                                                                        </object>
    17571757                                                                                                </object>
  • trunk/macosx/NSStringAdditions.h

    r6252 r6260  
    3939+ (NSString *) timeString: (NSUInteger) seconds showSeconds: (BOOL) showSeconds maxFields: (NSUInteger) max;
    4040
     41- (NSComparisonResult) compareFinder: (NSString *) string; //how the Finder compares strings
    4142- (NSComparisonResult) compareIP: (NSString *) string;
    4243
  • trunk/macosx/NSStringAdditions.m

    r6252 r6260  
    2424
    2525#import "NSStringAdditions.h"
     26#import "NSApplicationAdditions.h"
    2627#import <transmission.h>
    2728
     
    145146}
    146147
     148- (NSComparisonResult) compareFinder: (NSString *) string
     149{
     150    int comparisonOptions = ![NSApp isOnLeopardOrBetter] ? (NSCaseInsensitiveSearch | NSNumericSearch)
     151        : (NSCaseInsensitiveSearch | NSNumericSearch| NSWidthInsensitiveSearch | NSForcedOrderingSearch);
     152   
     153    return [self compare: string options: comparisonOptions range: NSMakeRange(0, [self length]) locale: [NSLocale currentLocale]];
     154}
     155
    147156- (NSComparisonResult) compareIP: (NSString *) string
    148 {
     157{   
    149158    NSArray * selfSections = [self componentsSeparatedByString: @"."],
    150159            * newSections = [string componentsSeparatedByString: @"."];
     
    155164    NSEnumerator * selfSectionsEnum = [selfSections objectEnumerator], * newSectionsEnum = [newSections objectEnumerator];
    156165    NSString * selfString, * newString;
     166    int comparisonOptions = [NSApp isOnLeopardOrBetter] ? (NSNumericSearch | NSForcedOrderingSearch) : NSNumericSearch;
    157167    NSComparisonResult result;
    158168    while ((selfString = [selfSectionsEnum nextObject]) && (newString = [newSectionsEnum nextObject]))
    159         if ((result = [selfString compare: newString options: NSNumericSearch]) != NSOrderedSame)
     169        if ((result = [selfString compare: newString options: comparisonOptions
     170                        range: NSMakeRange(0, [selfString length]) locale: [NSLocale currentLocale]]) != NSOrderedSame)
    160171            return result;
    161172   
Note: See TracChangeset for help on using the changeset viewer.