[Xfce4-commits] <xfce4-settings:nick/mime-settings> Add icons to the popup menu.

Nick Schermer noreply at xfce.org
Sat Jan 21 21:28:01 CET 2012


Updating branch refs/heads/nick/mime-settings
         to bdd3a145fd747001f9a652ac8a9f1a56de00c678 (commit)
       from 398e0a949c2902d4e7f729f347361126b21cf548 (commit)

commit bdd3a145fd747001f9a652ac8a9f1a56de00c678
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Jan 21 19:10:08 2012 +0100

    Add icons to the popup menu.

 dialogs/mime-settings/xfce-mime-window.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/dialogs/mime-settings/xfce-mime-window.c b/dialogs/mime-settings/xfce-mime-window.c
index 8b77728..6ebad86 100644
--- a/dialogs/mime-settings/xfce-mime-window.c
+++ b/dialogs/mime-settings/xfce-mime-window.c
@@ -97,6 +97,7 @@ enum
 {
     COLUMN_APP_NAME,
     COLUMN_APP_INFO,
+    COLUMN_APP_GICON,
     COLUMN_APP_TYPE,
     N_APP_COLUMNS
 };
@@ -784,6 +785,8 @@ xfce_mime_window_combo_populate (GtkCellRenderer *renderer,
     GtkListStore    *model;
     GAppInfo        *app_info;
     MimeChangedData *data;
+    GtkCellRenderer *iconrenderer;
+    gint             size = 0;
 
     if (!gtk_tree_model_get_iter_from_string (window->filter_model, &filter_iter, path_string))
         return;
@@ -793,6 +796,7 @@ xfce_mime_window_combo_populate (GtkCellRenderer *renderer,
     model = gtk_list_store_new (N_APP_COLUMNS,
                                 G_TYPE_STRING,
                                 G_TYPE_APP_INFO,
+                                G_TYPE_ICON,
                                 G_TYPE_UINT);
 
     gtk_tree_model_get (window->mime_model, &iter, COLUMN_MIME_TYPE, &mime_type, -1);
@@ -807,6 +811,7 @@ xfce_mime_window_combo_populate (GtkCellRenderer *renderer,
         gtk_list_store_insert_with_values (model, NULL, n++,
                                            COLUMN_APP_NAME, g_app_info_get_name (app_info),
                                            COLUMN_APP_INFO, app_info,
+                                           COLUMN_APP_GICON, g_app_info_get_icon (app_info),
                                            COLUMN_APP_TYPE, APP_TYPE_APP,
                                            -1);
         g_object_unref (app_info);
@@ -814,6 +819,7 @@ xfce_mime_window_combo_populate (GtkCellRenderer *renderer,
 
     if (n != 0)
     {
+        gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &size, NULL);
         gtk_list_store_insert_with_values (model, NULL, n++,
                                            COLUMN_APP_TYPE, APP_TYPE_SEPARATOR,
                                            -1);
@@ -843,6 +849,15 @@ xfce_mime_window_combo_populate (GtkCellRenderer *renderer,
     gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable),
         xfce_mime_window_combo_row_separator_func, NULL, NULL);
 
+    iconrenderer = gtk_cell_renderer_pixbuf_new ();
+    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (editable), iconrenderer, FALSE);
+    gtk_cell_layout_reorder (GTK_CELL_LAYOUT (editable), iconrenderer, 0);
+    g_object_set (G_OBJECT (iconrenderer),
+                  "stock-size", GTK_ICON_SIZE_MENU,
+                  "width", size, NULL);
+    gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (editable), iconrenderer,
+                                   "gicon", COLUMN_APP_GICON);
+
     g_list_free (app_infos);
     g_object_unref (G_OBJECT (model));
 }


More information about the Xfce4-commits mailing list