qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] ui/cocoa.m: remove open dialog code
@ 2015-09-23 23:06 Programmingkid
  2015-09-25 16:09 ` Peter Maydell
  0 siblings, 1 reply; 10+ messages in thread
From: Programmingkid @ 2015-09-23 23:06 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-devel qemu-devel

[-- Attachment #1: Type: text/plain, Size: 4545 bytes --]

Removes the open dialog code that runs when no arguments
are supplied with QEMU. Not everyone needs a hard drive
or cdrom to boot their target. A user might only need to
use their target's bios to do work. With that said,
this patch removes the unneeded open dialog code. 

Signed-off-by: John Arbuckle <programmingkidx@gmail.com>

---
Add a dialog box that tells the user to start QEMU from
the commandline instead of the Finder.

 ui/cocoa.m |   66 ++++++++++++-----------------------------------------------
 1 files changed, 14 insertions(+), 52 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index 334e6f6..dc8e0f6 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;
@@ -896,27 +895,20 @@ QemuCocoaView *cocoaView;
 {
     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];
+    // if the user launched QEMU from the Finder
+    if(gArgc == 1) {
+        NSAlert *alert = [NSAlert new];
+        [alert autorelease];
+        [alert setMessageText: @"Please start QEMU from the command line with"
+                                                      " appropriate arguments"];
+        [alert addButtonWithTitle: @"Quit"];
+        [alert addButtonWithTitle: @"Continue"];
+        if([alert runModal] == NSAlertFirstButtonReturn) {
+            [NSApp terminate: self];
+        } else {
+            // launch QEMU, with the global args
+            [self startEmulationWithArgc:gArgc argv:(char **)gArgv];
+        }
     }
 }
 
@@ -942,36 +934,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:
-- 
1.7.5.4


[-- Attachment #2: Type: text/html, Size: 21089 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-09-25 20:47 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-23 23:06 [Qemu-devel] [PATCH v2] ui/cocoa.m: remove open dialog code Programmingkid
2015-09-25 16:09 ` Peter Maydell
2015-09-25 16:12   ` Programmingkid
2015-09-25 16:21     ` Peter Maydell
2015-09-25 18:24       ` Programmingkid
2015-09-25 18:53         ` Peter Maydell
2015-09-25 19:58           ` Programmingkid
2015-09-25 20:14             ` Peter Maydell
2015-09-25 20:38               ` Programmingkid
2015-09-25 20:47                 ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).