attempt to simplify port gui code a little more
This commit is contained in:
parent
e19ba5199b
commit
1ff647412e
2
NEWS
2
NEWS
|
@ -30,7 +30,7 @@ Note: From 0.7 on, Transmission for Mac OS X requires 10.4 Tiger or better.
|
||||||
+ Message log window
|
+ Message log window
|
||||||
+ New toolbar icons
|
+ New toolbar icons
|
||||||
+ Built-in help files
|
+ Built-in help files
|
||||||
+ French, Spanish, and Greek translations
|
+ French, Spanish, German, and Greek translations
|
||||||
|
|
||||||
0.6.1 (2006/06/25)
|
0.6.1 (2006/06/25)
|
||||||
- OS X:
|
- OS X:
|
||||||
|
|
|
@ -72,10 +72,9 @@
|
||||||
- (void) incompleteFolderSheetShow: (id) sender;
|
- (void) incompleteFolderSheetShow: (id) sender;
|
||||||
|
|
||||||
- (void) setPort: (id) sender;
|
- (void) setPort: (id) sender;
|
||||||
|
- (void) setNat: (id) sender;
|
||||||
- (void) updatePortStatus;
|
- (void) updatePortStatus;
|
||||||
- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker;
|
- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker;
|
||||||
- (void) setNat: (id) sender;
|
|
||||||
- (void) updateNatStatus;
|
|
||||||
|
|
||||||
- (void) applyRatioSetting: (id) sender;
|
- (void) applyRatioSetting: (id) sender;
|
||||||
- (void) updateRatioStopField;
|
- (void) updateRatioStopField;
|
||||||
|
|
|
@ -145,12 +145,11 @@
|
||||||
|
|
||||||
//set port
|
//set port
|
||||||
[fPortField setIntValue: [fDefaults integerForKey: @"BindPort"]];
|
[fPortField setIntValue: [fDefaults integerForKey: @"BindPort"]];
|
||||||
[self updatePortStatus];
|
|
||||||
|
|
||||||
fNatStatus = -1;
|
fNatStatus = -1;
|
||||||
[self updateNatStatus];
|
|
||||||
|
[self updatePortStatus];
|
||||||
fNatStatusTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self
|
fNatStatusTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self
|
||||||
selector: @selector(updateNatStatus) userInfo: nil repeats: YES];
|
selector: @selector(updatePortStatus) userInfo: nil repeats: YES];
|
||||||
|
|
||||||
//set queue values
|
//set queue values
|
||||||
[fQueueDownloadField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]];
|
[fQueueDownloadField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]];
|
||||||
|
@ -236,8 +235,8 @@
|
||||||
|
|
||||||
- (void) setPort: (id) sender
|
- (void) setPort: (id) sender
|
||||||
{
|
{
|
||||||
fPublicPort = [sender intValue];
|
int port = [sender intValue];
|
||||||
if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", fPublicPort]])
|
if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", port]])
|
||||||
{
|
{
|
||||||
NSBeep();
|
NSBeep();
|
||||||
[sender setIntValue: [fDefaults integerForKey: @"BindPort"]];
|
[sender setIntValue: [fDefaults integerForKey: @"BindPort"]];
|
||||||
|
@ -246,24 +245,59 @@
|
||||||
|
|
||||||
[fDefaults setInteger: fPublicPort forKey: @"BindPort"];
|
[fDefaults setInteger: fPublicPort forKey: @"BindPort"];
|
||||||
|
|
||||||
tr_setBindPort(fHandle, fPublicPort);
|
tr_setBindPort(fHandle, port);
|
||||||
[self updateNatStatus];
|
|
||||||
|
fPublicPort = -1;
|
||||||
|
[self updatePortStatus];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) setNat: (id) sender
|
||||||
|
{
|
||||||
|
tr_natTraversalEnable(fHandle, [fDefaults boolForKey: @"NatTraversal"]);
|
||||||
[self updatePortStatus];
|
[self updatePortStatus];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) updatePortStatus
|
- (void) updatePortStatus
|
||||||
{
|
{
|
||||||
|
tr_handle_status_t * stat = tr_handleStatus(fHandle);
|
||||||
|
|
||||||
|
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",
|
[fPortStatusField setStringValue: [NSLocalizedString(@"Checking port status",
|
||||||
"Preferences -> Network -> port status") stringByAppendingEllipsis]];
|
"Preferences -> Network -> port status") stringByAppendingEllipsis]];
|
||||||
[fPortStatusImage setImage: nil];
|
[fPortStatusImage setImage: nil];
|
||||||
[fPortStatusProgress startAnimation: self];
|
[fPortStatusProgress startAnimation: self];
|
||||||
|
|
||||||
tr_handle_status_t * stat = tr_handleStatus(fHandle);
|
|
||||||
fPublicPort = stat->publicPort;
|
|
||||||
|
|
||||||
PortChecker * portChecker = [[PortChecker alloc] initWithDelegate: self];
|
PortChecker * portChecker = [[PortChecker alloc] initWithDelegate: self];
|
||||||
[portChecker probePort: fPublicPort];
|
[portChecker probePort: fPublicPort];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker
|
- (void) portCheckerDidFinishProbing: (PortChecker *) portChecker
|
||||||
{
|
{
|
||||||
|
@ -291,46 +325,6 @@
|
||||||
[portChecker release];
|
[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
|
- (void) applySpeedSettings: (id) sender
|
||||||
{
|
{
|
||||||
if ([fDefaults boolForKey: @"SpeedLimit"])
|
if ([fDefaults boolForKey: @"SpeedLimit"])
|
||||||
|
|
Loading…
Reference in New Issue