Message ID | 6ED57561-5704-475B-AC7B-D9D2DD53E627@gmail.com |
---|---|
State | New |
Headers | show |
On 25 September 2015 at 12:58, Programmingkid <programmingkidx@gmail.com> wrote: > > On Sep 25, 2015, at 2:53 PM, Peter Maydell wrote: > >> On 25 September 2015 at 11:24, Programmingkid <programmingkidx@gmail.com> wrote: >> >>> I don't think Mac OS X adds the -psn argument anymore. It might have >>> in the past, but I don't see any sign of it on Mac OS 10.6. I made >>> a test program and launched it from both the terminal and the Finder. >>> I didn't see the -psn argument. >> >> Hmm, you're right. Googling suggests that the -psn argument is added >> only if the program is in an 'application bundle' (ie not just a >> bare executable). >> >> So that means we can't easily distinguish being run from the GUI >> vs from the command line, which means we don't have a convenient >> way to check for whether we should bring up that dialog box. >> >> I think that brings us back to somewhere near your first patch -- >> just remove the dialog box code. If anybody is somehow running >> QEMU in an application bundle they'll let us know that it's broken, >> I'm sure :-) >> >> Sorry for all the back-and-forth on this patch. Can you send out >> a v3 that goes back to that approach, please? >> >> -- PMM > > I think you want this patch (the original one): Yes, but I was hoping for it in a format that works with our patch-handling tools... -- PMM
On Sep 25, 2015, at 4:14 PM, Peter Maydell wrote: > On 25 September 2015 at 12:58, Programmingkid <programmingkidx@gmail.com> wrote: >> >> On Sep 25, 2015, at 2:53 PM, Peter Maydell wrote: >> >>> On 25 September 2015 at 11:24, Programmingkid <programmingkidx@gmail.com> wrote: >>> >>>> I don't think Mac OS X adds the -psn argument anymore. It might have >>>> in the past, but I don't see any sign of it on Mac OS 10.6. I made >>>> a test program and launched it from both the terminal and the Finder. >>>> I didn't see the -psn argument. >>> >>> Hmm, you're right. Googling suggests that the -psn argument is added >>> only if the program is in an 'application bundle' (ie not just a >>> bare executable). >>> >>> So that means we can't easily distinguish being run from the GUI >>> vs from the command line, which means we don't have a convenient >>> way to check for whether we should bring up that dialog box. >>> >>> I think that brings us back to somewhere near your first patch -- >>> just remove the dialog box code. If anybody is somehow running >>> QEMU in an application bundle they'll let us know that it's broken, >>> I'm sure :-) >>> >>> Sorry for all the back-and-forth on this patch. Can you send out >>> a v3 that goes back to that approach, please? >>> >>> -- PMM >> >> I think you want this patch (the original one): > > Yes, but I was hoping for it in a format that works with > our patch-handling tools... What needs to be changed to make it work with the patch-handling tools?
On 25 September 2015 at 13:38, Programmingkid <programmingkidx@gmail.com> wrote: > > On Sep 25, 2015, at 4:14 PM, Peter Maydell wrote: >> Yes, but I was hoping for it in a format that works with >> our patch-handling tools... > > What needs to be changed to make it work with the patch-handling tools? Single email, plain-text only, in the form git format-patch produces (ie not as part of another email), ideally with the right From address. thanks -- PMM
diff --git a/ui/cocoa.m b/ui/cocoa.m index 334e6f6..1dc9bc6 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -814,7 +814,6 @@ QemuCocoaView *cocoaView; { } - (void)startEmulationWithArgc:(int)argc argv:(char**)argv; -- (void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; - (void)doToggleFullScreen:(id)sender; - (void)toggleFullScreen:(id)sender; - (void)showQEMUDoc:(id)sender; @@ -895,29 +894,8 @@ QemuCocoaView *cocoaView; - (void)applicationDidFinishLaunching: (NSNotification *) note { COCOA_DEBUG("QemuCocoaAppController: applicationDidFinishLaunching\n"); - - // Display an open dialog box if no arguments were passed or - // if qemu was launched from the finder ( the Finder passes "-psn" ) - if( gArgc <= 1 || strncmp ((char *)gArgv[1], "-psn", 4) == 0) { - NSOpenPanel *op = [[NSOpenPanel alloc] init]; - [op setPrompt:@"Boot image"]; - [op setMessage:@"Select the disk image you want to boot.\n\nHit the \"Cancel\" button to quit"]; -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - [op setAllowedFileTypes:supportedImageFileTypes]; - [op beginSheetModalForWindow:normalWindow - completionHandler:^(NSInteger returnCode) - { [self openPanelDidEnd:op - returnCode:returnCode contextInfo:NULL ]; } ]; -#else - // Compatibility code for pre-10.6, using deprecated method - [op beginSheetForDirectory:nil file:nil types:filetypes - modalForWindow:normalWindow modalDelegate:self - didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:) contextInfo:NULL]; -#endif - } else { - // or launch QEMU, with the global args - [self startEmulationWithArgc:gArgc argv:(char **)gArgv]; - } + // launch QEMU, with the global args + [self startEmulationWithArgc:gArgc argv:(char **)gArgv]; } - (void)applicationWillTerminate:(NSNotification *)aNotification @@ -942,36 +920,6 @@ QemuCocoaView *cocoaView; exit(status); } -- (void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo -{ - COCOA_DEBUG("QemuCocoaAppController: openPanelDidEnd\n"); - - /* The NSFileHandlingPanelOKButton/NSFileHandlingPanelCancelButton values for - * returnCode strictly only apply for the 10.6-and-up beginSheetModalForWindow - * API. For the legacy pre-10.6 beginSheetForDirectory API they are NSOKButton - * and NSCancelButton. However conveniently the values are the same. - * We use the non-legacy names because the others are deprecated in OSX 10.10. - */ - if (returnCode == NSFileHandlingPanelCancelButton) { - exit(0); - } else if (returnCode == NSFileHandlingPanelOKButton) { - char *img = (char*)[ [ [ sheet URL ] path ] cStringUsingEncoding:NSASCIIStringEncoding]; - - char **argv = g_new(char *, 4); - - [sheet close]; - - argv[0] = g_strdup(gArgv[0]); - argv[1] = g_strdup("-hda"); - argv[2] = g_strdup(img); - argv[3] = NULL; - - // printf("Using argc %d argv %s -hda %s\n", 3, gArgv[0], img); - - [self startEmulationWithArgc:3 argv:(char**)argv]; - } -} - /* We abstract the method called by the Enter Fullscreen menu item * because Mac OS 10.7 and higher disables it. This is because of the * menu item's old selector's name toggleFullScreen: