diff --git a/SUDiskImageUnarchiver.m b/SUDiskImageUnarchiver.m index 96ba8bd75..7b48fd16b 100644 --- a/SUDiskImageUnarchiver.m +++ b/SUDiskImageUnarchiver.m @@ -18,11 +18,6 @@ + (BOOL)_canUnarchivePath:(NSString *)path return [[path pathExtension] isEqualToString:@"dmg"]; } -- (void)start -{ - [NSThread detachNewThreadSelector:@selector(_extractDMG) toTarget:self withObject:nil]; -} - - (void)_extractDMG { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; @@ -77,6 +72,11 @@ - (void)_extractDMG [pool drain]; } +- (void)start +{ + [NSThread detachNewThreadSelector:@selector(_extractDMG) toTarget:self withObject:nil]; +} + + (void)load { [self _registerImplementation:self]; diff --git a/SUUIBasedUpdateDriver.m b/SUUIBasedUpdateDriver.m index f8625d3c7..084c10e09 100644 --- a/SUUIBasedUpdateDriver.m +++ b/SUUIBasedUpdateDriver.m @@ -14,6 +14,13 @@ @implementation SUUIBasedUpdateDriver +- (IBAction)cancelDownload:sender +{ + if (download) + [download cancel]; + [self abortUpdate]; +} + - (void)didFindValidUpdate { updateAlert = [[SUUpdateAlert alloc] initWithAppcastItem:updateItem host:host]; @@ -103,13 +110,6 @@ - (void)download:(NSURLDownload *)download didReceiveDataOfLength:(NSUInteger)le [statusController setStatusText:[NSString stringWithFormat:SULocalizedString(@"%@ downloaded", nil), [self _humanReadableSizeFromDouble:[statusController progressValue]]]]; } -- (IBAction)cancelDownload:sender -{ - if (download) - [download cancel]; - [self abortUpdate]; -} - - (void)extractUpdate { // Now we have to extract the downloaded archive. @@ -134,6 +134,8 @@ - (void)unarchiver:(SUUnarchiver *)ua extractedLength:(unsigned long)length [statusController setProgressValue:[statusController progressValue] + (double)length]; } +- (void)installAndRestart:sender { [self installUpdate]; } + - (void)unarchiverDidFinish:(SUUnarchiver *)ua { [statusController beginActionWithTitle:SULocalizedString(@"Ready to Install", nil) maxProgressValue:1.0 statusText:nil]; @@ -143,8 +145,6 @@ - (void)unarchiverDidFinish:(SUUnarchiver *)ua [NSApp requestUserAttention:NSInformationalRequest]; } -- (void)installAndRestart:sender { [self installUpdate]; } - - (void)installUpdate { [statusController beginActionWithTitle:SULocalizedString(@"Installing update...", @"Take care not to overflow the status window.") maxProgressValue:0.0 statusText:nil]; diff --git a/SUUserInitiatedUpdateDriver.m b/SUUserInitiatedUpdateDriver.m index 9ed50e494..276b032b1 100644 --- a/SUUserInitiatedUpdateDriver.m +++ b/SUUserInitiatedUpdateDriver.m @@ -13,6 +13,22 @@ @implementation SUUserInitiatedUpdateDriver +- (void)closeCheckingWindow +{ + if (checkingController) + { + [[checkingController window] close]; + [checkingController release]; + checkingController = nil; + } +} + +- (void)cancelCheckForUpdates:sender +{ + [self closeCheckingWindow]; + isCanceled = YES; +} + - (void)checkForUpdatesAtURL:(NSURL *)URL host:(SUHost *)aHost { checkingController = [[SUStatusController alloc] initWithHost:aHost]; @@ -30,22 +46,6 @@ - (void)checkForUpdatesAtURL:(NSURL *)URL host:(SUHost *)aHost } } -- (void)closeCheckingWindow -{ - if (checkingController) - { - [[checkingController window] close]; - [checkingController release]; - checkingController = nil; - } -} - -- (void)cancelCheckForUpdates:sender -{ - [self closeCheckingWindow]; - isCanceled = YES; -} - - (void)appcastDidFinishLoading:(SUAppcast *)ac { if (isCanceled) diff --git a/relaunch.m b/relaunch.m index fc04c732e..415c356dc 100644 --- a/relaunch.m +++ b/relaunch.m @@ -16,6 +16,13 @@ - (void)relaunch __dead2; @implementation TerminationListener +- (void)watchdog:(NSTimer *)timer +{ + ProcessSerialNumber psn; + if (GetProcessForPID(parentProcessId, &psn) == procNotFound) + [self relaunch]; +} + - (id) initWithExecutablePath:(const char *)execPath parentProcessId:(pid_t)ppid { self = [super init]; @@ -30,13 +37,6 @@ - (id) initWithExecutablePath:(const char *)execPath parentProcessId:(pid_t)ppid return self; } -- (void)watchdog:(NSTimer *)timer -{ - ProcessSerialNumber psn; - if (GetProcessForPID(parentProcessId, &psn) == procNotFound) - [self relaunch]; -} - - (void) relaunch { [[NSWorkspace sharedWorkspace] openFile:[[NSFileManager defaultManager] stringWithFileSystemRepresentation:executablePath length:strlen(executablePath)]];