attempt to simplify port gui code a little more

This commit is contained in:
Mitchell Livingston 2007-04-16 04:50:57 +00:00
parent e19ba5199b
commit 1ff647412e
3 changed files with 52 additions and 59 deletions

2
NEWS
View File

@ -30,7 +30,7 @@ Note: From 0.7 on, Transmission for Mac OS X requires 10.4 Tiger or better.
+ Message log window
+ New toolbar icons
+ Built-in help files
+ French, Spanish, and Greek translations
+ French, Spanish, German, and Greek translations
0.6.1 (2006/06/25)
- OS X:

View File

@ -72,10 +72,9 @@
- (void) incompleteFolderSheetShow: (id) sender;
- (void) setPort: (id) sender;
- (void) setNat: (id) sender;
- (void) updatePortStatus;
- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker;
- (void) setNat: (id) sender;
- (void) updateNatStatus;
- (void) applyRatioSetting: (id) sender;
- (void) updateRatioStopField;

View File

@ -145,12 +145,11 @@
//set port
[fPortField setIntValue: [fDefaults integerForKey: @"BindPort"]];
[self updatePortStatus];
fNatStatus = -1;
[self updateNatStatus];
[self updatePortStatus];
fNatStatusTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self
selector: @selector(updateNatStatus) userInfo: nil repeats: YES];
selector: @selector(updatePortStatus) userInfo: nil repeats: YES];
//set queue values
[fQueueDownloadField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]];
@ -236,8 +235,8 @@
- (void) setPort: (id) sender
{
fPublicPort = [sender intValue];
if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", fPublicPort]])
int port = [sender intValue];
if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", port]])
{
NSBeep();
[sender setIntValue: [fDefaults integerForKey: @"BindPort"]];
@ -246,23 +245,58 @@
[fDefaults setInteger: fPublicPort forKey: @"BindPort"];
tr_setBindPort(fHandle, fPublicPort);
[self updateNatStatus];
tr_setBindPort(fHandle, port);
fPublicPort = -1;
[self updatePortStatus];
}
- (void) setNat: (id) sender
{
tr_natTraversalEnable(fHandle, [fDefaults boolForKey: @"NatTraversal"]);
[self updatePortStatus];
}
- (void) updatePortStatus
{
[fPortStatusField setStringValue: [NSLocalizedString(@"Checking port status",
"Preferences -> Network -> port status") stringByAppendingEllipsis]];
[fPortStatusImage setImage: nil];
[fPortStatusProgress startAnimation: self];
tr_handle_status_t * stat = tr_handleStatus(fHandle);
fPublicPort = stat->publicPort;
PortChecker * portChecker = [[PortChecker alloc] initWithDelegate: self];
[portChecker probePort: fPublicPort];
BOOL change;
if (change = (fNatStatus != stat->natTraversalStatus))
{
fNatStatus = stat->natTraversalStatus;
if (fNatStatus == TR_NAT_TRAVERSAL_MAPPED)
{
[fNatStatusField setStringValue: NSLocalizedString(@"Port successfully mapped",
"Preferences -> Network -> port map status")];
[fNatStatusImage setImage: [NSImage imageNamed: @"GreenDot.tiff"]];
}
else if (fNatStatus == TR_NAT_TRAVERSAL_NOTFOUND || fNatStatus == TR_NAT_TRAVERSAL_ERROR)
{
[fNatStatusField setStringValue: NSLocalizedString(@"Error mapping port",
"Preferences -> Network -> port map status")];
[fNatStatusImage setImage: [NSImage imageNamed: @"RedDot.tiff"]];
}
else
{
[fNatStatusField setStringValue: @""];
[fNatStatusImage setImage: nil];
}
}
if (change || fPublicPort != stat->publicPort)
{
fPublicPort = stat->publicPort;
[fPortStatusField setStringValue: [NSLocalizedString(@"Checking port status",
"Preferences -> Network -> port status") stringByAppendingEllipsis]];
[fPortStatusImage setImage: nil];
[fPortStatusProgress startAnimation: self];
PortChecker * portChecker = [[PortChecker alloc] initWithDelegate: self];
[portChecker probePort: fPublicPort];
}
}
- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker
@ -291,46 +325,6 @@
[portChecker release];
}
- (void) setNat: (id) sender
{
tr_natTraversalEnable(fHandle, [fDefaults boolForKey: @"NatTraversal"]);
[self updateNatStatus];
}
- (void) updateNatStatus
{
tr_handle_status_t * stat = tr_handleStatus(fHandle);
if (fNatStatus != stat->natTraversalStatus)
{
fNatStatus = stat->natTraversalStatus;
if (fNatStatus == TR_NAT_TRAVERSAL_MAPPED)
{
[fNatStatusField setStringValue: NSLocalizedString(@"Port successfully mapped",
"Preferences -> Network -> port map status")];
[fNatStatusImage setImage: [NSImage imageNamed: @"GreenDot.tiff"]];
}
else if (fNatStatus == TR_NAT_TRAVERSAL_NOTFOUND || fNatStatus == TR_NAT_TRAVERSAL_ERROR)
{
[fNatStatusField setStringValue: NSLocalizedString(@"Error mapping port",
"Preferences -> Network -> port map status")];
[fNatStatusImage setImage: [NSImage imageNamed: @"RedDot.tiff"]];
}
else
{
[fNatStatusField setStringValue: @""];
[fNatStatusImage setImage: nil];
}
[self updatePortStatus];
}
else if (fPublicPort != stat->publicPort)
{
[self updatePortStatus];
}
else;
}
- (void) applySpeedSettings: (id) sender
{
if ([fDefaults boolForKey: @"SpeedLimit"])