1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-01-31 03:12:44 +00:00

fix a crash with the URL window, and memory leak with the URL window, and update the "Open" button of the URL window when shown

This commit is contained in:
Mitchell Livingston 2011-02-11 03:17:36 +00:00
parent 32a54d1029
commit e5b8461919
2 changed files with 27 additions and 10 deletions

View file

@ -1231,10 +1231,9 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
- (void) urlSheetDidEnd: (URLSheetWindowController *) controller url: (NSString *) urlString returnCode: (NSInteger) returnCode
{
if (returnCode != 1)
return;
if (returnCode == 1)
[self performSelectorOnMainThread: @selector(openURL:) withObject: urlString waitUntilDone: NO];
[self performSelectorOnMainThread: @selector(openURL:) withObject: urlString waitUntilDone: NO];
[controller release];
}

View file

@ -25,9 +25,15 @@
#import "URLSheetWindowController.h"
#import "Controller.h"
@interface URLSheetWindowController (Private)
- (BOOL) updateOpenButtonForURL: (NSString *) string;
@end
@implementation URLSheetWindowController
NSString * urlString = @"";
NSString * urlString = nil;
- (id) initWithController: (Controller *) controller
{
@ -42,8 +48,13 @@ NSString * urlString = @"";
{
[fLabelField setStringValue: NSLocalizedString(@"Internet address of torrent file:", "URL sheet label")];
[fTextField setStringValue: urlString];
[fTextField selectText: self];
if (urlString)
{
[fTextField setStringValue: urlString];
[fTextField selectText: self];
[self updateOpenButtonForURL: urlString];
}
[fOpenButton setTitle: NSLocalizedString(@"Open", "URL sheet button")];
[fCancelButton setTitle: NSLocalizedString(@"Cancel", "URL sheet button")];
@ -57,8 +68,6 @@ NSString * urlString = @"";
NSRect cancelFrame = [fCancelButton frame];
cancelFrame.size.width += 10.0;
if (NSWidth(openFrame) > NSWidth(cancelFrame))
cancelFrame.size.width = NSWidth(openFrame);
else
@ -92,13 +101,22 @@ NSString * urlString = @"";
- (void) sheetDidEnd: (NSWindow *) sheet returnCode: (NSInteger) returnCode contextInfo: (void *) contextInfo
{
urlString = [fTextField stringValue];
[urlString release];
urlString = [[fTextField stringValue] retain];
[fController urlSheetDidEnd: self url: urlString returnCode: returnCode];
}
- (void) controlTextDidChange: (NSNotification *) notification
{
NSString * string = [fTextField stringValue];
[self updateOpenButtonForURL: [fTextField stringValue]];
}
@end
@implementation URLSheetWindowController (Private)
- (BOOL) updateOpenButtonForURL: (NSString *) string
{
BOOL enable = YES;
if ([string isEqualToString: @""])
enable = NO;