Skip to contentSkip to conversation

gtk: Add show_tabs=on|off command line option.

PATCH In review Igor S 3 participants 6 messages Feb 26, 2016 – Jun 23, 2022

lore
Share & tools
lore

Igor S

author
#0 lore raw

PATCH 1/1 gtk: Add show_tabs=on|off command line option.

The patch adds "show_tabs" command line option for GTK ui similar to "grab_on_hover". This option allows tabbed view mode to not have to be enabled by hand at each start of the VM.

---
 include/ui/console.h |  2 +-
 qemu-options.hx      |  2 +-
 ui/gtk.c             |  5 ++++-
 vl.c                 | 12 +++++++++++-
 4 files changed, 17 insertions(+), 4 deletions(-)
include/ui/console.h +1 -1
index 6631b96..71132aa 100644
@@ -453,6 +453,6 @@ int index_from_key(const char *key, size_t key_length);
 
 /* gtk.c */
 void early_gtk_display_init(int opengl);
-void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover);
+void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover, bool show_tabs);
 
 #endif
qemu-options.hx +1 -1
index f528405..1c2e9ae 100644
@@ -930,7 +930,7 @@ ETEXI
 DEF("display", HAS_ARG, QEMU_OPTION_display,
     "-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]\n"
     "            [,window_close=on|off]|curses|none|\n"
-    "            gtk[,grab_on_hover=on|off]|\n"
+    "            gtk[,grab_on_hover=on|off][,show_tabs=on|off]|\n"
     "            vnc=<display>[,<optargs>]\n"
     "                select display type\n", QEMU_ARCH_ALL)
 STEXI
ui/gtk.c +4 -1
index 3773826..8800eca 100644
@@ -2071,7 +2071,7 @@ static void gd_set_keycode_type(GtkDisplayState *s)
 
 static gboolean gtkinit;
 
-void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
+void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover, bool show_tabs)
 {
     GtkDisplayState *s = g_malloc0(sizeof(*s));
     char *filename;
@@ -2157,6 +2157,9 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
     if (grab_on_hover) {
         gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item));
     }
+    if (show_tabs) {
+        gtk_menu_item_activate(GTK_MENU_ITEM(s->show_tabs_item));
+    }
 
     gd_set_keycode_type(s);
 }
vl.c +11 -1
index b87e292..e553611 100644
@@ -146,6 +146,7 @@ static int no_frame = 0;
 int no_quit = 0;
 #ifdef CONFIG_GTK
 static bool grab_on_hover;
+static bool show_tabs;
 #endif
 CharDriverState *serial_hds[MAX_SERIAL_PORTS];
 CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
@@ -2194,6 +2195,15 @@ static DisplayType select_display(const char *p)
                 } else {
                     goto invalid_gtk_args;
                 }
+            } else if (strstart(opts, ",show_tabs=", &nextopt)) {
+                opts = nextopt;
+                if (strstart(opts, "on", &nextopt)) {
+                    show_tabs = true;
+                } else if (strstart(opts, "off", &nextopt)) {
+                    show_tabs = false;
+                } else {
+                    goto invalid_gtk_args;
+                }
             } else if (strstart(opts, ",gl=", &nextopt)) {
                 opts = nextopt;
                 if (strstart(opts, "on", &nextopt)) {
@@ -4567,7 +4577,7 @@ int main(int argc, char **argv, char **envp)
 #endif
 #if defined(CONFIG_GTK)
     case DT_GTK:
-        gtk_display_init(ds, full_screen, grab_on_hover);
+        gtk_display_init(ds, full_screen, grab_on_hover, show_tabs);
         break;
 #endif
     default:
Signature · 1 line
2.7.0
#1 lore raw

Heya!

Quoted 1 line

The patch adds "show_tabs" command line option for GTK ui similar to "grab_on_hover". This option allows tabbed view mode to not have to be enabled by hand at each start of the VM.

It's been a while now, but i was always missing this feature in QEMU and i'd love to see that patch land in QEMU one day.

I discovered that patch by searching for "start qemu with tabs visible" and found this link:

https://patchwork.ozlabs.org/project/qemu-devel/patch/[email protected]/

Regards
- Felix

#2 lore raw
Quoted 9 lines · Felix Queißner

Heya!

Quoted 1 line

The patch adds "show_tabs" command line option for GTK ui similar to "grab_on_hover". This option allows tabbed view mode to not have to be enabled by hand at each start of the VM.

It's been a while now, but i was always missing this feature in QEMU and i'd love to see that patch land in QEMU one day.

I discovered that patch by searching for "start qemu with tabs visible" and found this link:

https://patchwork.ozlabs.org/project/qemu-devel/patch/[email protected]/

Not sure why it was

That patch certainly needs a re-spin since it won't apply as-is anymore. Want to have a try?

Thomas

#3 lore raw
Quoted 5 lines · Thomas Huth
Quoted 4 lines · Felix Queißner

Heya!

Quoted 1 line

The patch adds "show_tabs" command line option for GTK ui similar to "grab_on_hover". This option allows tabbed view mode to not have to be enabled by hand at each start of the VM.

Quoted 8 lines
Quoted 5 lines

It's been a while now, but i was always missing this feature in QEMU and i'd love to see that patch land in QEMU one day.

I discovered that patch by searching for "start qemu with tabs visible" and found this link:

https://patchwork.ozlabs.org/project/qemu-devel/patch/[email protected]/

Not sure why it was

I wanted to say: "Not sure why it was never picked up"... sorry, I hit the send button by accident too early.

Thomas

#4 lore raw
In reply to Thomas Huth
Quoted 4 lines

Not sure why it was never picked up

That patch certainly needs a re-spin since it won't apply as-is anymore. Want to have a try?

I guess the semantics of the code stay the same, but the boilerplate might change a bit?

If so, i guess i can give it a try tomorrow and see if i can make it work.

- Felix

#5 lore raw
Quoted 8 lines · Felix Queißner
Quoted 4 lines

Not sure why it was never picked up

That patch certainly needs a re-spin since it won't apply as-is anymore. Want to have a try?

I guess the semantics of the code stay the same, but the boilerplate might change a bit?

If so, i guess i can give it a try tomorrow and see if i can make it work.

The part that affects vl.c has changed completely - you now have to declare it in the "QAPI schema" in the file qapi/ui.json instead (and it has to use "-" instead of "_" now).

Just have a look how grab_on_hover is handled nowadays, then you'll should be able to figure it out, I think.

HTH,
Thomas