* [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
` (4 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, patches
The guest might want to be able to use the command key for its won
purposes (as command if it is MacOS X, or for the Windows key if
it is a PC guest, for instance). In line with other UI frontends,
pass it through if the guest has mousegrab, and only use it for UI
menu accelerators if not grabbed.
Thanks to John Arbuckle for reporting this problem, helping
us work through what the best solution would be and providing
a patch which was the initial inspiration for this one.
Reported-by: John Arbuckle <programmingkidx@gmail.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
ui/cocoa.m | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index be49179..d38cf22 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -129,8 +129,8 @@ int keymap[] =
14, // 51 0x33 0x0e BKSP QZ_BACKSPACE
0, // 52 0x34 Undefined
1, // 53 0x35 0x01 ESC QZ_ESCAPE
- 0, // 54 0x36 QZ_RMETA
- 0, // 55 0x37 QZ_LMETA
+ 220, // 54 0x36 0xdc E0,5C R GUI QZ_RMETA
+ 219, // 55 0x37 0xdb E0,5B L GUI QZ_LMETA
42, // 56 0x38 0x2a L SHFT QZ_LSHIFT
58, // 57 0x39 0x3a CAPS QZ_CAPSLOCK
56, // 58 0x3A 0x38 L ALT QZ_LALT
@@ -206,8 +206,6 @@ int keymap[] =
/* Aditional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
/*
- 219 // 0xdb e0,5b L GUI
- 220 // 0xdc e0,5c R GUI
221 // 0xdd e0,5d APPS
// E0,2A,E0,37 PRNT SCRN
// E1,1D,45,E1,9D,C5 PAUSE
@@ -494,6 +492,12 @@ QemuCocoaView *cocoaView;
switch ([event type]) {
case NSFlagsChanged:
keycode = cocoa_keycode_to_qemu([event keyCode]);
+
+ if ((keycode == 219 || keycode == 220) && !isMouseGrabed) {
+ /* Don't pass command key changes to guest unless mouse is grabbed */
+ keycode = 0;
+ }
+
if (keycode) {
if (keycode == 58 || keycode == 69) { // emulate caps lock and num lock keydown and keyup
kbd_put_keycode(keycode);
@@ -517,15 +521,15 @@ QemuCocoaView *cocoaView;
}
break;
case NSKeyDown:
+ keycode = cocoa_keycode_to_qemu([event keyCode]);
- // forward command Key Combos
- if ([event modifierFlags] & NSCommandKeyMask) {
+ // forward command key combos to the host UI unless the mouse is grabbed
+ if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
[NSApp sendEvent:event];
return;
}
// default
- keycode = cocoa_keycode_to_qemu([event keyCode]);
// handle control + alt Key Combos (ctrl+alt is reserved for QEMU)
if (([event modifierFlags] & NSControlKeyMask) && ([event modifierFlags] & NSAlternateKeyMask)) {
@@ -581,6 +585,13 @@ QemuCocoaView *cocoaView;
break;
case NSKeyUp:
keycode = cocoa_keycode_to_qemu([event keyCode]);
+
+ // don't pass the guest a spurious key-up if we treated this
+ // command-key combo as a host UI action
+ if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
+ return;
+ }
+
if (qemu_console_is_graphic(NULL)) {
if (keycode & 0x80)
kbd_put_keycode(0xe0);
--
1.7.11.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
2013-12-13 20:18 ` Stefan Weil
2013-12-08 22:59 ` [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout Peter Maydell
` (3 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, patches
Fix various non-user-visible typos in comments and variable names.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
ui/cocoa.m | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index d38cf22..f55747f 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -52,7 +52,7 @@
#define COCOA_MOUSE_EVENT \
if (isTabletEnabled) { \
kbd_mouse_event((int)(p.x * 0x7FFF / (screen.width - 1)), (int)((screen.height - p.y) * 0x7FFF / (screen.height - 1)), 0, buttons); \
- } else if (isMouseGrabed) { \
+ } else if (isMouseGrabbed) { \
kbd_mouse_event((int)[event deltaX], (int)[event deltaY], 0, buttons); \
} else { \
[NSApp sendEvent:event]; \
@@ -204,7 +204,7 @@ int keymap[] =
200,// 126 0x7E 0xc8 E0,48 U ARROW QZ_UP
/* completed according to http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/quartz/SDL_QuartzKeys.h?rev=1.6&content-type=text/x-cvsweb-markup */
-/* Aditional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
+/* Additional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
/*
221 // 0xdd e0,5d APPS
// E0,2A,E0,37 PRNT SCRN
@@ -260,7 +260,7 @@ static int cocoa_keycode_to_qemu(int keycode)
float cx,cy,cw,ch,cdx,cdy;
CGDataProviderRef dataProviderRef;
int modifiers_state[256];
- BOOL isMouseGrabed;
+ BOOL isMouseGrabbed;
BOOL isFullscreen;
BOOL isAbsoluteEnabled;
BOOL isTabletEnabled;
@@ -271,7 +271,7 @@ static int cocoa_keycode_to_qemu(int keycode)
- (void) toggleFullScreen:(id)sender;
- (void) handleEvent:(NSEvent *)event;
- (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled;
-- (BOOL) isMouseGrabed;
+- (BOOL) isMouseGrabbed;
- (BOOL) isAbsoluteEnabled;
- (float) cdx;
- (float) cdy;
@@ -493,7 +493,7 @@ QemuCocoaView *cocoaView;
case NSFlagsChanged:
keycode = cocoa_keycode_to_qemu([event keyCode]);
- if ((keycode == 219 || keycode == 220) && !isMouseGrabed) {
+ if ((keycode == 219 || keycode == 220) && !isMouseGrabbed) {
/* Don't pass command key changes to guest unless mouse is grabbed */
keycode = 0;
}
@@ -524,7 +524,7 @@ QemuCocoaView *cocoaView;
keycode = cocoa_keycode_to_qemu([event keyCode]);
// forward command key combos to the host UI unless the mouse is grabbed
- if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
+ if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
[NSApp sendEvent:event];
return;
}
@@ -588,7 +588,7 @@ QemuCocoaView *cocoaView;
// don't pass the guest a spurious key-up if we treated this
// command-key combo as a host UI action
- if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
+ if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
return;
}
@@ -649,7 +649,7 @@ QemuCocoaView *cocoaView;
case NSLeftMouseUp:
if (isTabletEnabled) {
COCOA_MOUSE_EVENT
- } else if (!isMouseGrabed) {
+ } else if (!isMouseGrabbed) {
if (p.x > -1 && p.x < screen.width && p.y > -1 && p.y < screen.height) {
[self grabMouse];
} else {
@@ -666,7 +666,7 @@ QemuCocoaView *cocoaView;
COCOA_MOUSE_EVENT
break;
case NSScrollWheel:
- if (isTabletEnabled || isMouseGrabed) {
+ if (isTabletEnabled || isMouseGrabbed) {
kbd_mouse_event(0, 0, -[event deltaY], 0);
} else {
[NSApp sendEvent:event];
@@ -689,7 +689,7 @@ QemuCocoaView *cocoaView;
}
[NSCursor hide];
CGAssociateMouseAndMouseCursorPosition(FALSE);
- isMouseGrabed = TRUE; // while isMouseGrabed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
+ isMouseGrabbed = TRUE; // while isMouseGrabbed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
}
- (void) ungrabMouse
@@ -704,11 +704,11 @@ QemuCocoaView *cocoaView;
}
[NSCursor unhide];
CGAssociateMouseAndMouseCursorPosition(TRUE);
- isMouseGrabed = FALSE;
+ isMouseGrabbed = FALSE;
}
- (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled {isAbsoluteEnabled = tIsAbsoluteEnabled;}
-- (BOOL) isMouseGrabed {return isMouseGrabed;}
+- (BOOL) isMouseGrabbed {return isMouseGrabbed;}
- (BOOL) isAbsoluteEnabled {return isAbsoluteEnabled;}
- (float) cdx {return cdx;}
- (float) cdy {return cdy;}
@@ -779,7 +779,7 @@ QemuCocoaView *cocoaView;
{
COCOA_DEBUG("QemuCocoaAppController: applicationDidFinishLaunching\n");
- // Display an open dialog box if no argument were passed or
+ // 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];
@@ -1011,7 +1011,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
if (kbd_mouse_is_absolute()) {
if (![cocoaView isAbsoluteEnabled]) {
- if ([cocoaView isMouseGrabed]) {
+ if ([cocoaView isMouseGrabbed]) {
[cocoaView ungrabMouse];
}
}
--
1.7.11.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names
2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
@ 2013-12-13 20:18 ` Stefan Weil
2013-12-24 2:28 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Weil @ 2013-12-13 20:18 UTC (permalink / raw)
To: Peter Maydell, qemu-devel; +Cc: Andreas Färber, patches
Am 08.12.2013 23:59, schrieb Peter Maydell:
> Fix various non-user-visible typos in comments and variable names.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> ui/cocoa.m | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index d38cf22..f55747f 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -52,7 +52,7 @@
> #define COCOA_MOUSE_EVENT \
> if (isTabletEnabled) { \
> kbd_mouse_event((int)(p.x * 0x7FFF / (screen.width - 1)), (int)((screen.height - p.y) * 0x7FFF / (screen.height - 1)), 0, buttons); \
> - } else if (isMouseGrabed) { \
> + } else if (isMouseGrabbed) { \
> kbd_mouse_event((int)[event deltaX], (int)[event deltaY], 0, buttons); \
> } else { \
> [NSApp sendEvent:event]; \
> @@ -204,7 +204,7 @@ int keymap[] =
> 200,// 126 0x7E 0xc8 E0,48 U ARROW QZ_UP
> /* completed according to http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/quartz/SDL_QuartzKeys.h?rev=1.6&content-type=text/x-cvsweb-markup */
>
> -/* Aditional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
> +/* Additional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
> /*
> 221 // 0xdd e0,5d APPS
> // E0,2A,E0,37 PRNT SCRN
> @@ -260,7 +260,7 @@ static int cocoa_keycode_to_qemu(int keycode)
> float cx,cy,cw,ch,cdx,cdy;
> CGDataProviderRef dataProviderRef;
> int modifiers_state[256];
> - BOOL isMouseGrabed;
> + BOOL isMouseGrabbed;
> BOOL isFullscreen;
> BOOL isAbsoluteEnabled;
> BOOL isTabletEnabled;
> @@ -271,7 +271,7 @@ static int cocoa_keycode_to_qemu(int keycode)
> - (void) toggleFullScreen:(id)sender;
> - (void) handleEvent:(NSEvent *)event;
> - (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled;
> -- (BOOL) isMouseGrabed;
> +- (BOOL) isMouseGrabbed;
> - (BOOL) isAbsoluteEnabled;
> - (float) cdx;
> - (float) cdy;
> @@ -493,7 +493,7 @@ QemuCocoaView *cocoaView;
> case NSFlagsChanged:
> keycode = cocoa_keycode_to_qemu([event keyCode]);
>
> - if ((keycode == 219 || keycode == 220) && !isMouseGrabed) {
> + if ((keycode == 219 || keycode == 220) && !isMouseGrabbed) {
> /* Don't pass command key changes to guest unless mouse is grabbed */
> keycode = 0;
> }
> @@ -524,7 +524,7 @@ QemuCocoaView *cocoaView;
> keycode = cocoa_keycode_to_qemu([event keyCode]);
>
> // forward command key combos to the host UI unless the mouse is grabbed
> - if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
> + if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
> [NSApp sendEvent:event];
> return;
> }
> @@ -588,7 +588,7 @@ QemuCocoaView *cocoaView;
>
> // don't pass the guest a spurious key-up if we treated this
> // command-key combo as a host UI action
> - if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
> + if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
> return;
> }
>
> @@ -649,7 +649,7 @@ QemuCocoaView *cocoaView;
> case NSLeftMouseUp:
> if (isTabletEnabled) {
> COCOA_MOUSE_EVENT
> - } else if (!isMouseGrabed) {
> + } else if (!isMouseGrabbed) {
> if (p.x > -1 && p.x < screen.width && p.y > -1 && p.y < screen.height) {
> [self grabMouse];
> } else {
> @@ -666,7 +666,7 @@ QemuCocoaView *cocoaView;
> COCOA_MOUSE_EVENT
> break;
> case NSScrollWheel:
> - if (isTabletEnabled || isMouseGrabed) {
> + if (isTabletEnabled || isMouseGrabbed) {
> kbd_mouse_event(0, 0, -[event deltaY], 0);
> } else {
> [NSApp sendEvent:event];
> @@ -689,7 +689,7 @@ QemuCocoaView *cocoaView;
> }
> [NSCursor hide];
> CGAssociateMouseAndMouseCursorPosition(FALSE);
> - isMouseGrabed = TRUE; // while isMouseGrabed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
> + isMouseGrabbed = TRUE; // while isMouseGrabbed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
> }
>
> - (void) ungrabMouse
> @@ -704,11 +704,11 @@ QemuCocoaView *cocoaView;
> }
> [NSCursor unhide];
> CGAssociateMouseAndMouseCursorPosition(TRUE);
> - isMouseGrabed = FALSE;
> + isMouseGrabbed = FALSE;
> }
>
> - (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled {isAbsoluteEnabled = tIsAbsoluteEnabled;}
> -- (BOOL) isMouseGrabed {return isMouseGrabed;}
> +- (BOOL) isMouseGrabbed {return isMouseGrabbed;}
> - (BOOL) isAbsoluteEnabled {return isAbsoluteEnabled;}
> - (float) cdx {return cdx;}
> - (float) cdy {return cdy;}
> @@ -779,7 +779,7 @@ QemuCocoaView *cocoaView;
> {
> COCOA_DEBUG("QemuCocoaAppController: applicationDidFinishLaunching\n");
>
> - // Display an open dialog box if no argument were passed or
> + // 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];
> @@ -1011,7 +1011,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
>
> if (kbd_mouse_is_absolute()) {
> if (![cocoaView isAbsoluteEnabled]) {
> - if ([cocoaView isMouseGrabed]) {
> + if ([cocoaView isMouseGrabbed]) {
> [cocoaView ungrabMouse];
> }
> }
Reviewed-by: Stefan Weil <sw@weilnetz.de>
PS. Does anybody know how to add the QEMU mascot as a Cocoa application
icon for all QEMU applications?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names
2013-12-13 20:18 ` Stefan Weil
@ 2013-12-24 2:28 ` Peter Maydell
0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-24 2:28 UTC (permalink / raw)
To: Stefan Weil; +Cc: Andreas Färber, QEMU Developers, Patch Tracking
On 13 December 2013 20:18, Stefan Weil <sw@weilnetz.de> wrote:
> PS. Does anybody know how to add the QEMU mascot as a Cocoa application
> icon for all QEMU applications?
I have some code which programmatically sets the icon for QEMU
from a file when it runs:
+ const char *iconfile = "qemu-icon.bmp";
+ const char *icondir = os_find_datadir(gArgv[0]);
+ if (!icondir) {
+ icondir = CONFIG_QEMU_DATADIR;
+ }
+ NSString *iconstring = [NSString stringWithFormat:@"%s/%s",
icondir, iconfile];
+ NSImage *icon = [[NSImage alloc] initWithContentsOfFile:iconstring];
+ if (icon) {
+ [NSApp setApplicationIconImage:icon];
+ }
(goes in ui/cocoa.m just before we set up the menus).
However the qemu-icon.bmp looks awful in the MacOS
dock: it has a white background, not transparent, and the resolution
is probably wrong too.
I suspect the best approach is going to be to create and ship a
TIFF file with the relevant set of icons for various resolutions in it,
as per the documentation on 'tiffutil' in this page:
https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW13
but that's beyond my artistic and/or image mangling abilities
I think. If somebody else feels like doing that I can clean
up the code patch for posting, but there's not much point
otherwise.
(I don't think it's possible to make the QEMU executable
have an icon in the Finder, unless we turn it from a plain
command line executable into an "app bundle". And if
we did that you wouldn't be able to run it easily from the
terminal with command line arguments, which in practice
you absolutely have to be able to do for it to be at all useful.)
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog Peter Maydell
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, patches
Bring a warning message into line with the others in this file by
sending it to stderr, not stdout, and fix a typo in it.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
ui/cocoa.m | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index f55747f..c5ab5a4 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -240,7 +240,7 @@ static int cocoa_keycode_to_qemu(int keycode)
{
if((sizeof(keymap)/sizeof(int)) <= keycode)
{
- printf("(cocoa) warning unknow keycode 0x%x\n", keycode);
+ fprintf(stderr, "(cocoa) warning unknown keycode 0x%x\n", keycode);
return 0;
}
return keymap[keycode];
--
1.7.11.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
` (2 preceding siblings ...)
2013-12-08 22:59 ` [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file " Peter Maydell
2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, patches
Add ".qcow2" to the list of file extensions which are accepted
by the initial disk image load dialog which is displayed if the
user runs QEMU without any command line arguments.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
ui/cocoa.m | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index c5ab5a4..4ca1477 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -786,7 +786,7 @@ QemuCocoaView *cocoaView;
[op setPrompt:@"Boot image"];
[op setMessage:@"Select the disk image you want to boot.\n\nHit the \"Cancel\" button to quit"];
NSArray *filetypes = [NSArray arrayWithObjects:@"img", @"iso", @"dmg",
- @"qcow", @"cow", @"cloop", @"vmdk", nil];
+ @"qcow", @"qcow2", @"cow", @"cloop", @"vmdk", nil];
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
[op setAllowedFileTypes:filetypes];
[op beginSheetModalForWindow:normalWindow
--
1.7.11.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file load dialog
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
` (3 preceding siblings ...)
2013-12-08 22:59 ` [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, patches
Fix a number of bugs in the code for starting QEMU via the image
file load dialog:
* use the actual argv[0] rather than "qemu": this avoids failures to
find BIOS image files caused by not looking in the correct directory
relative to the executable path
* allocate a large enough argv array to NULL terminate it
* use g_strdup(X) rather than g_strdup_printf("%s", X) or
g_strdup_printf(X)
* disable the printing of the simulated command line argument
(which is presumably intended for debug only)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
ui/cocoa.m | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 4ca1477..94bf729 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -834,18 +834,18 @@ QemuCocoaView *cocoaView;
if(returnCode == NSCancelButton) {
exit(0);
} else if(returnCode == NSOKButton) {
- const char *bin = "qemu";
char *img = (char*)[ [ [ sheet URL ] path ] cStringUsingEncoding:NSASCIIStringEncoding];
- char **argv = (char**)malloc( sizeof(char*)*3 );
+ char **argv = g_new(char *, 4);
[sheet close];
- argv[0] = g_strdup_printf("%s", bin);
- argv[1] = g_strdup_printf("-hda");
- argv[2] = g_strdup_printf("%s", img);
+ 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, bin, img);
+ // printf("Using argc %d argv %s -hda %s\n", 3, gArgv[0], img);
[self startEmulationWithArgc:3 argv:(char**)argv];
}
--
1.7.11.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
` (4 preceding siblings ...)
2013-12-08 22:59 ` [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file " Peter Maydell
@ 2013-12-23 16:08 ` Peter Maydell
2013-12-24 13:03 ` Andreas Färber
5 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2013-12-23 16:08 UTC (permalink / raw)
To: QEMU Developers; +Cc: Andreas Färber, Patch Tracking
On 8 December 2013 22:59, Peter Maydell <peter.maydell@linaro.org> wrote:
> This patchset is a collection of minor Cocoa UI patches:
> * the 'pass command key through when mousegrabbed' patch I sent
> earlier (included here for convenience since the others in
> the series would otherwise trivially conflict)
> * typo fixes
> * support for loading *.qcow2 via the "pick a disk image" dialog
> * fix for a bug that meant using the 'pick an image' dialog
> might cause us to fail to find BIOS image files later
>
> Peter Maydell (5):
> ui/cocoa: Pass command key through to guest when VM has mousegrab
> ui/cocoa: Correct typos in comments and variable names
> ui/cocoa: Send warning message to stderr, not stdout
> ui/cocoa: Add ".qcow2" to extension list for image load dialog
> ui/cocoa: Fix code for starting QEMU via image file load dialog
Ping! Last call for review/testing; otherwise I'll put these into a pullreq
with the MAINTAINERS file update and send it out in a week or so.
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
@ 2013-12-24 13:03 ` Andreas Färber
2013-12-24 14:46 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Andreas Färber @ 2013-12-24 13:03 UTC (permalink / raw)
To: Peter Maydell, QEMU Developers; +Cc: Patch Tracking
Am 23.12.2013 17:08, schrieb Peter Maydell:
> On 8 December 2013 22:59, Peter Maydell <peter.maydell@linaro.org> wrote:
>> This patchset is a collection of minor Cocoa UI patches:
>> * the 'pass command key through when mousegrabbed' patch I sent
>> earlier (included here for convenience since the others in
>> the series would otherwise trivially conflict)
>> * typo fixes
>> * support for loading *.qcow2 via the "pick a disk image" dialog
>> * fix for a bug that meant using the 'pick an image' dialog
>> might cause us to fail to find BIOS image files later
>>
>> Peter Maydell (5):
>> ui/cocoa: Pass command key through to guest when VM has mousegrab
>> ui/cocoa: Correct typos in comments and variable names
>> ui/cocoa: Send warning message to stderr, not stdout
>> ui/cocoa: Add ".qcow2" to extension list for image load dialog
>> ui/cocoa: Fix code for starting QEMU via image file load dialog
>
> Ping! Last call for review/testing; otherwise I'll put these into a pullreq
> with the MAINTAINERS file update and send it out in a week or so.
I'm not anywhere near my Mac for testing over the holidays, so if you've
taken reasonable assurance that patches don't just work on the latest
and greatest x86_64 APIs then please feel free to submit a PULL.
Regards,
Andreas
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
2013-12-24 13:03 ` Andreas Färber
@ 2013-12-24 14:46 ` Peter Maydell
0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-24 14:46 UTC (permalink / raw)
To: Andreas Färber; +Cc: QEMU Developers, Patch Tracking
On 24 December 2013 13:03, Andreas Färber <andreas.faerber@web.de> wrote:
> Am 23.12.2013 17:08, schrieb Peter Maydell:
>> On 8 December 2013 22:59, Peter Maydell <peter.maydell@linaro.org> wrote:
>>> This patchset is a collection of minor Cocoa UI patches:
>>> * the 'pass command key through when mousegrabbed' patch I sent
>>> earlier (included here for convenience since the others in
>>> the series would otherwise trivially conflict)
>>> * typo fixes
>>> * support for loading *.qcow2 via the "pick a disk image" dialog
>>> * fix for a bug that meant using the 'pick an image' dialog
>>> might cause us to fail to find BIOS image files later
>>>
>>> Peter Maydell (5):
>>> ui/cocoa: Pass command key through to guest when VM has mousegrab
>>> ui/cocoa: Correct typos in comments and variable names
>>> ui/cocoa: Send warning message to stderr, not stdout
>>> ui/cocoa: Add ".qcow2" to extension list for image load dialog
>>> ui/cocoa: Fix code for starting QEMU via image file load dialog
>>
>> Ping! Last call for review/testing; otherwise I'll put these into a pullreq
>> with the MAINTAINERS file update and send it out in a week or so.
>
> I'm not anywhere near my Mac for testing over the holidays, so if you've
> taken reasonable assurance that patches don't just work on the latest
> and greatest x86_64 APIs then please feel free to submit a PULL.
The only two new API calls in any of these patches are
CGContextSetRGBFillColor() and CGContextFillRect(), both of
which are documented as "10.0 and up", so I think we're good on
that score, though I don't have any way of doing an actual test on 10.3
or PPC.
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread