inspector: Make GMenu content show up

My problem was that all the content is usually hidden away
in sections, so without recursion, nothing shows up. So,
implement the recursion then.
This commit is contained in:
Matthias Clasen 2014-06-05 09:29:18 -04:00
parent af8bd96e6e
commit 14d1a5cba4
2 changed files with 23 additions and 1 deletions

View File

@ -43,6 +43,10 @@ gtk_inspector_menu_init (GtkInspectorMenu *sl)
gtk_widget_init_template (GTK_WIDGET (sl));
}
static void add_menu (GtkInspectorMenu *sl,
GMenuModel *menu,
GtkTreeIter *parent);
static void
add_item (GtkInspectorMenu *sl,
GMenuModel *menu,
@ -55,6 +59,7 @@ add_item (GtkInspectorMenu *sl,
gchar *action = NULL;
gchar *target = NULL;
gchar *icon = NULL;
GMenuModel *model;
g_menu_model_get_item_attribute (menu, idx, G_MENU_ATTRIBUTE_LABEL, "s", &label);
g_menu_model_get_item_attribute (menu, idx, G_MENU_ATTRIBUTE_ACTION, "s", &action);
@ -74,6 +79,24 @@ add_item (GtkInspectorMenu *sl,
COLUMN_ICON, icon,
-1);
model = g_menu_model_get_item_link (menu, idx, G_MENU_LINK_SECTION);
if (model)
{
if (label == NULL)
gtk_tree_store_set (sl->priv->model, &iter,
COLUMN_LABEL, _("Unnamed section"),
-1);
add_menu (sl, model, &iter);
g_object_unref (model);
}
model = g_menu_model_get_item_link (menu, idx, G_MENU_LINK_SUBMENU);
if (model)
{
add_menu (sl, model, &iter);
g_object_unref (model);
}
g_free (label);
g_free (action);
g_free (target);

View File

@ -22,7 +22,6 @@
<object class= "GtkTreeView">
<property name="visible">True</property>
<property name="model">model</property>
<property name="activate-on-single-click">True</property>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Label</property>