Changeset 1618


Ignore:
Timestamp:
Mar 31, 2007, 8:08:10 PM (16 years ago)
Author:
livings124
Message:

Add preference option to disable PEX in Mac frontend.

Location:
trunk/macosx
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/English.lproj/InfoWindow.nib/classes.nib

    r1497 r1618  
    99                revealTorrentFile = id;
    1010                setLimitSetting = id;
     11                setPex = id;
    1112                setRatioLimit = id;
    1213                setRatioSetting = id;
     
    3738                fNameField = NSTextField;
    3839                fPeerTable = NSTableView;
     40                fPexCheck = NSButton;
    3941                fPiecesField = NSTextField;
    4042                fPiecesView = PiecesView;
  • trunk/macosx/English.lproj/InfoWindow.nib/info.nib

    r1579 r1618  
    44<dict>
    55        <key>IBDocumentLocation</key>
    6         <string>29 56 356 240 0 0 1024 746 </string>
     6        <string>47 71 356 240 0 0 1440 878 </string>
    77        <key>IBEditorPositions</key>
    88        <dict>
     
    2525        </array>
    2626        <key>IBSystem Version</key>
    27         <string>8L127</string>
     27        <string>8P2137</string>
    2828</dict>
    2929</plist>
  • trunk/macosx/InfoWindowController.h

    r1533 r1618  
    5959    IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField,
    6060                        * fUploadLimitLabel, * fDownloadLimitLabel;
     61        IBOutlet NSButton * fPexCheck;
    6162}
    6263
     
    7778- (void) setRatioLimit: (id) sender;
    7879
     80- (void) setPex: (id) sender;
     81
    7982@end
  • trunk/macosx/InfoWindowController.m

    r1609 r1618  
    4242#define TAB_PEERS_HEIGHT 279.0
    4343#define TAB_FILES_HEIGHT 279.0
    44 #define TAB_OPTIONS_HEIGHT 117.0
     44#define TAB_OPTIONS_HEIGHT 156.0
    4545
    4646#define OPTION_POPUP_GLOBAL 0
     
    509509        else
    510510            [fRatioLimitField setStringValue: @""];
     511               
     512                //set pex check
     513                enumerator = [fTorrents objectEnumerator];
     514        torrent = [enumerator nextObject]; //first torrent
     515               
     516                BOOL pexEnabled = ![torrent privateTorrent];
     517                int pexState = [torrent pex] ? NSOnState : NSOffState;
     518               
     519                while ((pexEnabled || pexState != NSMixedState)
     520                && (torrent = [enumerator nextObject]))
     521        {
     522            if (pexEnabled)
     523                pexEnabled = ![torrent privateTorrent];
     524           
     525            if (pexState != NSMixedState && pexState != ([torrent pex] ? NSOnState : NSOffState))
     526                pexState = NSMixedState;
     527        }
     528               
     529                [fPexCheck setEnabled: pexEnabled];
     530                [fPexCheck setState: pexState];
    511531    }
    512532    else
     
    528548        [fRatioLimitField setHidden: YES];
    529549        [fRatioLimitField setStringValue: @""];
     550               
     551                [fPexCheck setEnabled: NO];
    530552    }
    531553   
     
    943965}
    944966
     967- (void) setPex: (id) sender
     968{
     969        int state = [sender state];
     970        if (state == NSMixedState)
     971        {
     972                state = NSOnState;
     973                [sender setState: state];
     974        }
     975       
     976        Torrent * torrent;
     977    NSEnumerator * enumerator = [fTorrents objectEnumerator];
     978       
     979        while ((torrent = [enumerator nextObject]))
     980                [torrent setPex: state == NSOnState];
     981}
     982
    945983@end
  • trunk/macosx/Torrent.h

    r1611 r1618  
    4343    BOOL        fPublicTorrent;
    4444    NSString    * fPublicTorrentLocation;
     45       
     46        BOOL fPex;
    4547
    4648    NSUserDefaults * fDefaults;
     
    180182- (float)       swarmSpeed;
    181183
     184- (BOOL) pex;
     185- (void) setPex: (BOOL) set;
     186
    182187- (NSNumber *) orderValue;
    183188- (void) setOrderValue: (int) orderValue;
  • trunk/macosx/Torrent.m

    r1611 r1618  
    4040        checkUpload: (NSNumber *) checkUpload uploadLimit: (NSNumber *) uploadLimit
    4141        checkDownload: (NSNumber *) checkDownload downloadLimit: (NSNumber *) downloadLimit
     42                pex: (NSNumber *) pex
    4243        waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue;
    4344
     
    7475            checkUpload: nil uploadLimit: nil
    7576            checkDownload: nil downloadLimit: nil
     77                        pex: nil
    7678            waitToStart: nil orderValue: nil];
    7779   
     
    101103                checkDownload: [history objectForKey: @"CheckDownload"]
    102104                downloadLimit: [history objectForKey: @"DownloadLimit"]
     105                                pex: [history objectForKey: @"Pex"]
    103106                waitToStart: [history objectForKey: @"WaitToStart"]
    104107                orderValue: [history objectForKey: @"OrderValue"]];
     
    171174    if (fPublicTorrent)
    172175        [history setObject: [self publicTorrentLocation] forKey: @"TorrentPath"];
     176       
     177        if (![self privateTorrent])
     178                [history setObject: [NSNumber numberWithBool: fPex] forKey: @"Pex"];
    173179       
    174180        if (fDateCompleted)
     
    10871093}
    10881094
     1095- (BOOL) pex
     1096{
     1097        return fPex;
     1098}
     1099
     1100- (void) setPex: (BOOL) pex
     1101{
     1102        if (![self privateTorrent])
     1103        {
     1104                fPex = pex;
     1105                tr_torrentDisablePex(fHandle, pex);
     1106        }
     1107}
     1108
    10891109- (NSNumber *) orderValue
    10901110{
     
    12371257        checkUpload: (NSNumber *) checkUpload uploadLimit: (NSNumber *) uploadLimit
    12381258        checkDownload: (NSNumber *) checkDownload downloadLimit: (NSNumber *) downloadLimit
     1259                pex: (NSNumber *) pex
    12391260        waitToStart: (NSNumber *) waitToStart orderValue: (NSNumber *) orderValue
    12401261{
     
    12811302    fDownloadLimit = downloadLimit ? [downloadLimit intValue] : [fDefaults integerForKey: @"DownloadLimit"];
    12821303    [self updateSpeedSetting];
     1304       
     1305        if ([self privateTorrent])
     1306                fPex = NO;
     1307        else
     1308                fPex = pex ? [pex boolValue] : YES;
     1309        tr_torrentDisablePex(fHandle, !fPex);
    12831310   
    12841311    fWaitToStart = waitToStart ? [waitToStart boolValue] : [fDefaults boolForKey: @"AutoStartDownload"];
Note: See TracChangeset for help on using the changeset viewer.