QTfrontend/util/platform/M3InstallController.m
changeset 8440 ea4d6a7a2937
parent 8381 588a8e6e2041
child 8449 2816230a107e
equal deleted inserted replaced
8439:3850c4bfe6b5 8440:ea4d6a7a2937
    35 
    35 
    36 @implementation M3InstallController
    36 @implementation M3InstallController
    37 
    37 
    38 - (id) init {
    38 - (id) init {
    39         if ((self = [super init])) {
    39         if ((self = [super init])) {
    40 		NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
    40         NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
    41 		NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%@ is currently running from a disk image", @"AppName is currently running from a disk image"), appName];
    41         NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%@ is currently running from a disk image", @"AppName is currently running from a disk image"), appName];
    42 		NSString *body = [NSString stringWithFormat:NSLocalizedString(@"Would you like to install %@ in your applications folder before quitting?", @"Would you like to install App Name in your applications folder before quitting?"), appName];
    42         NSString *body = [NSString stringWithFormat:NSLocalizedString(@"Would you like to install %@ in your applications folder before quitting?", @"Would you like to install App Name in your applications folder before quitting?"), appName];
    43 		alert = [[NSAlert alertWithMessageText:title
    43         alert = [[NSAlert alertWithMessageText:title
    44 								 defaultButton:NSLocalizedString(@"Install", @"Install")
    44                                  defaultButton:NSLocalizedString(@"Install", @"Install")
    45 							   alternateButton:NSLocalizedString(@"Don't Install", @"Don't Install")
    45                                alternateButton:NSLocalizedString(@"Don't Install", @"Don't Install")
    46 								   otherButton:nil
    46                                    otherButton:nil
    47 					 informativeTextWithFormat:body] retain];
    47                      informativeTextWithFormat:body] retain];
    48 		//[alert setShowsSuppressionButton:YES];
    48         //[alert setShowsSuppressionButton:YES];
    49 	}
    49     }
    50 	return self;
    50     return self;
    51 }
    51 }
    52 
    52 
    53 - (void)displayInstaller {
    53 - (void)displayInstaller {
    54 	NSString *imageFilePath = [[[NSWorkspace sharedWorkspace] propertiesForPath:[[NSBundle mainBundle] bundlePath]] objectForKey:NSWorkspace_RBimagefilepath];
    54     NSString *imageFilePath = [[[NSWorkspace sharedWorkspace] propertiesForPath:[[NSBundle mainBundle] bundlePath]] objectForKey:NSWorkspace_RBimagefilepath];
    55 	if (imageFilePath && ![imageFilePath isEqualToString:[NSString stringWithFormat:@"/Users/.%@/%@.sparseimage", NSUserName(), NSUserName()]] && ![[NSUserDefaults standardUserDefaults] boolForKey:@"M3DontAskInstallAgain"]) {
    55     if (imageFilePath && ![imageFilePath isEqualToString:[NSString stringWithFormat:@"/Users/.%@/%@.sparseimage", NSUserName(), NSUserName()]] && ![[NSUserDefaults standardUserDefaults] boolForKey:@"M3DontAskInstallAgain"]) {
    56 		NSInteger returnValue = [alert runModal];
    56         NSInteger returnValue = [alert runModal];
    57 		if (returnValue == NSAlertDefaultReturn) {
    57         if (returnValue == NSAlertDefaultReturn) {
    58 			[self installApp];
    58             [self installApp];
    59 		}
    59         }
    60 		if ([[alert suppressionButton] state] == NSOnState) {
    60         if ([[alert suppressionButton] state] == NSOnState) {
    61 			[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"M3DontAskInstallAgain"];
    61             [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"M3DontAskInstallAgain"];
    62 		}
    62         }
    63 	}
    63     }
    64 }
    64 }
    65 
    65 
    66 - (void)installApp {
    66 - (void)installApp {
    67 	NSString *appsPath = [[NSString stringWithString:@"/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]];
    67     NSString *appsPath = [[NSString stringWithString:@"/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]];
    68 	NSString *userAppsPath = [[[NSString stringWithString:@"~/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]] stringByExpandingTildeInPath];
    68     NSString *userAppsPath = [[[NSString stringWithString:@"~/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]] stringByExpandingTildeInPath];
    69 	NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
    69     NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
    70 
    70 
    71 	//Delete the app that is installed
    71     //Delete the app that is installed
    72 	if ([[NSFileManager defaultManager] fileExistsAtPath:appsPath]) {
    72     if ([[NSFileManager defaultManager] fileExistsAtPath:appsPath]) {
    73 		[[NSFileManager defaultManager] removeFileAtPath:appsPath handler:nil];
    73         [[NSFileManager defaultManager] removeFileAtPath:appsPath handler:nil];
    74 	}
    74     }
    75 	//Delete the app that is installed
    75     //Delete the app that is installed
    76 	if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:appsPath
    76     if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:appsPath
    77 										  handler:nil]) {
    77                                           handler:nil]) {
    78 		NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"App Name installed successfully"), appName],
    78         NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"App Name installed successfully"), appName],
    79 						[NSString stringWithFormat:NSLocalizedString(@"%@ was installed in /Applications", @"App Name was installed in /Applications"), appName],
    79                         [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in /Applications", @"App Name was installed in /Applications"), appName],
    80 						NSLocalizedString(@"Quit", @"Quit"), nil, nil);
    80                         NSLocalizedString(@"Quit", @"Quit"), nil, nil);
    81 	} else {
    81     } else {
    82 		if ([[NSFileManager defaultManager] fileExistsAtPath:userAppsPath]) {
    82         if ([[NSFileManager defaultManager] fileExistsAtPath:userAppsPath]) {
    83 			[[NSFileManager defaultManager] removeFileAtPath:userAppsPath handler:nil];
    83             [[NSFileManager defaultManager] removeFileAtPath:userAppsPath handler:nil];
    84 		}
    84         }
    85 		if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:userAppsPath
    85         if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:userAppsPath
    86 												handler:nil]) {
    86                                                 handler:nil]) {
    87 		NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"AppName installed successfully"), appName],
    87         NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"AppName installed successfully"), appName],
    88 				[NSString stringWithFormat:NSLocalizedString(@"%@ was installed in %@", @"App Name was installed in %@"), appName, [[NSString stringWithString:@"~/Applications"] stringByExpandingTildeInPath]],
    88                 [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in %@", @"App Name was installed in %@"), appName, [[NSString stringWithString:@"~/Applications"] stringByExpandingTildeInPath]],
    89 						NSLocalizedString(@"Quit", @"Quit"), nil, nil);
    89                         NSLocalizedString(@"Quit", @"Quit"), nil, nil);
    90 		} else {
    90         } else {
    91 			NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"Could not install %@", @"Could not install App Name"), appName],
    91             NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"Could not install %@", @"Could not install App Name"), appName],
    92 							NSLocalizedString(@"An error occurred when installing", @"An error occurred when installing"), NSLocalizedString(@"Quit", @"Quit"), nil, nil);
    92                             NSLocalizedString(@"An error occurred when installing", @"An error occurred when installing"), NSLocalizedString(@"Quit", @"Quit"), nil, nil);
    93 		}
    93         }
    94 	}
    94     }
    95 }
    95 }
    96 
    96 
    97 @end
    97 @end