Changeset 1724


Ignore:
Timestamp:
Apr 16, 2007, 4:50:57 AM (15 years ago)
Author:
livings124
Message:

attempt to simplify port gui code a little more

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEWS

    r1718 r1724  
    3131   + New toolbar icons
    3232   + Built-in help files
    33    + French, Spanish, and Greek translations
     33   + French, Spanish, German, and Greek translations
    3434
    35350.6.1 (2006/06/25)
  • trunk/macosx/PrefsController.h

    r1723 r1724  
    7373
    7474- (void) setPort: (id) sender;
     75- (void) setNat: (id) sender;
    7576- (void) updatePortStatus;
    7677- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker;
    77 - (void) setNat: (id) sender;
    78 - (void) updateNatStatus;
    7978
    8079- (void) applyRatioSetting: (id) sender;
  • trunk/macosx/PrefsController.m

    r1723 r1724  
    146146    //set port
    147147    [fPortField setIntValue: [fDefaults integerForKey: @"BindPort"]];
     148    fNatStatus = -1;
     149   
    148150    [self updatePortStatus];
    149    
    150     fNatStatus = -1;
    151     [self updateNatStatus];
    152151    fNatStatusTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self
    153                         selector: @selector(updateNatStatus) userInfo: nil repeats: YES];
     152                        selector: @selector(updatePortStatus) userInfo: nil repeats: YES];
    154153   
    155154    //set queue values
     
    237236- (void) setPort: (id) sender
    238237{
    239     fPublicPort = [sender intValue];
    240     if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", fPublicPort]])
     238    int port = [sender intValue];
     239    if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", port]])
    241240    {
    242241        NSBeep();
     
    247246    [fDefaults setInteger: fPublicPort forKey: @"BindPort"];
    248247   
    249     tr_setBindPort(fHandle, fPublicPort);
    250     [self updateNatStatus];
     248    tr_setBindPort(fHandle, port);
     249   
     250    fPublicPort = -1;
    251251    [self updatePortStatus];
    252252}
    253253
     254- (void) setNat: (id) sender
     255{
     256    tr_natTraversalEnable(fHandle, [fDefaults boolForKey: @"NatTraversal"]);
     257    [self updatePortStatus];
     258}
     259
    254260- (void) updatePortStatus
    255261{
    256     [fPortStatusField setStringValue: [NSLocalizedString(@"Checking port status",
    257                                         "Preferences -> Network -> port status") stringByAppendingEllipsis]];
    258     [fPortStatusImage setImage: nil];
    259     [fPortStatusProgress startAnimation: self];
    260    
    261262    tr_handle_status_t * stat = tr_handleStatus(fHandle);
    262     fPublicPort = stat->publicPort;
    263    
    264     PortChecker * portChecker = [[PortChecker alloc] initWithDelegate: self];
    265     [portChecker probePort: fPublicPort];
     263   
     264    BOOL change;
     265    if (change = (fNatStatus != stat->natTraversalStatus))
     266    {
     267        fNatStatus = stat->natTraversalStatus;
     268       
     269        if (fNatStatus == TR_NAT_TRAVERSAL_MAPPED)
     270        {
     271            [fNatStatusField setStringValue: NSLocalizedString(@"Port successfully mapped",
     272                                                "Preferences -> Network -> port map status")];
     273            [fNatStatusImage setImage: [NSImage imageNamed: @"GreenDot.tiff"]];
     274        }
     275        else if (fNatStatus == TR_NAT_TRAVERSAL_NOTFOUND || fNatStatus == TR_NAT_TRAVERSAL_ERROR)
     276        {
     277            [fNatStatusField setStringValue: NSLocalizedString(@"Error mapping port",
     278                                                "Preferences -> Network -> port map status")];
     279            [fNatStatusImage setImage: [NSImage imageNamed: @"RedDot.tiff"]];
     280        }
     281        else
     282        {
     283            [fNatStatusField setStringValue: @""];
     284            [fNatStatusImage setImage: nil];
     285        }
     286    }
     287   
     288    if (change || fPublicPort != stat->publicPort)
     289    {
     290        fPublicPort = stat->publicPort;
     291       
     292        [fPortStatusField setStringValue: [NSLocalizedString(@"Checking port status",
     293                                            "Preferences -> Network -> port status") stringByAppendingEllipsis]];
     294        [fPortStatusImage setImage: nil];
     295        [fPortStatusProgress startAnimation: self];
     296       
     297        PortChecker * portChecker = [[PortChecker alloc] initWithDelegate: self];
     298        [portChecker probePort: fPublicPort];
     299    }
    266300}
    267301
     
    292326}
    293327
    294 - (void) setNat: (id) sender
    295 {
    296     tr_natTraversalEnable(fHandle, [fDefaults boolForKey: @"NatTraversal"]);
    297     [self updateNatStatus];
    298 }
    299 
    300 - (void) updateNatStatus
    301 {
    302     tr_handle_status_t * stat = tr_handleStatus(fHandle);
    303     if (fNatStatus != stat->natTraversalStatus)
    304     {
    305         fNatStatus = stat->natTraversalStatus;
    306        
    307         if (fNatStatus == TR_NAT_TRAVERSAL_MAPPED)
    308         {
    309             [fNatStatusField setStringValue: NSLocalizedString(@"Port successfully mapped",
    310                                                 "Preferences -> Network -> port map status")];
    311             [fNatStatusImage setImage: [NSImage imageNamed: @"GreenDot.tiff"]];
    312         }
    313         else if (fNatStatus == TR_NAT_TRAVERSAL_NOTFOUND || fNatStatus == TR_NAT_TRAVERSAL_ERROR)
    314         {
    315             [fNatStatusField setStringValue: NSLocalizedString(@"Error mapping port",
    316                                                 "Preferences -> Network -> port map status")];
    317             [fNatStatusImage setImage: [NSImage imageNamed: @"RedDot.tiff"]];
    318         }
    319         else
    320         {
    321             [fNatStatusField setStringValue: @""];
    322             [fNatStatusImage setImage: nil];
    323         }
    324        
    325         [self updatePortStatus];
    326     }
    327     else if (fPublicPort != stat->publicPort)
    328     {
    329         [self updatePortStatus];
    330     }
    331     else;
    332 }
    333 
    334328- (void) applySpeedSettings: (id) sender
    335329{
Note: See TracChangeset for help on using the changeset viewer.