[Xfce4-commits] <libxfcegui4:master> Drop XfceDesktopEntry usage.

Nick Schermer noreply at xfce.org
Tue Jun 21 21:56:01 CEST 2011


Updating branch refs/heads/master
         to 9042e70bf7c8266aef059114d27ec1764fc41466 (commit)
       from 971f757dd5d73f493674dd9a0b0ff36d532b521f (commit)

commit 9042e70bf7c8266aef059114d27ec1764fc41466
Author: Nick Schermer <nick at xfce.org>
Date:   Tue Jun 21 21:55:19 2011 +0200

    Drop XfceDesktopEntry usage.

 libxfcegui4/xfce-appmenuitem.c |  120 ++--------------------------------------
 libxfcegui4/xfce-appmenuitem.h |    2 +-
 2 files changed, 6 insertions(+), 116 deletions(-)

diff --git a/libxfcegui4/xfce-appmenuitem.c b/libxfcegui4/xfce-appmenuitem.c
index 20dfa06..ffb15ed 100644
--- a/libxfcegui4/xfce-appmenuitem.c
+++ b/libxfcegui4/xfce-appmenuitem.c
@@ -522,127 +522,17 @@ GtkWidget *xfce_app_menu_item_new_full(const gchar *label, const gchar *command,
  * xfce_app_menu_item_new_with_command(), xfce_app_menu_item_set_needs_term(),
  * xfce_app_menu_item_set_icon_name(), and
  * xfce_app_menu_item_set_startup_notification().
+ * 
+ * In Xfce 4.10 this function only returns NULL, since XfceDesktopEntry was
+ * removed from libxfce4util.
  *
  * Since 4.1
  **/
 GtkWidget *
-xfce_app_menu_item_new_from_desktop_entry(XfceDesktopEntry *entry,
+xfce_app_menu_item_new_from_desktop_entry(gpointer *entry,
         gboolean show_icon)
 {
-    XfceAppMenuItem *app_menu_item;
-    gchar *name = NULL, *cmd = NULL, *icon = NULL, *snotify = NULL;
-    gchar *onlyshowin = NULL, *categories = NULL, *term = NULL;
-    const gchar *dfile;
-    
-    g_return_val_if_fail(XFCE_IS_DESKTOP_ENTRY(entry), NULL);
-    
-    if(xfce_desktop_entry_get_string(entry, "OnlyShowIn", FALSE, &onlyshowin)
-       || xfce_desktop_entry_get_string(entry, "Categories", FALSE,
-                                        &categories))
-    {
-        if((onlyshowin && strstr(onlyshowin, "XFCE;"))
-           || (categories && strstr(categories, "X-XFCE;")))
-        {
-            if(xfce_desktop_entry_has_translated_entry(entry, "GenericName")) {
-                xfce_desktop_entry_get_string(entry, "GenericName", TRUE,
-                                              &name);
-            } else if(xfce_desktop_entry_has_translated_entry(entry, "Name")) {
-                xfce_desktop_entry_get_string(entry, "Name", TRUE, &name);
-            } else {
-                xfce_desktop_entry_get_string(entry, "GenericName", FALSE,
-                                              &name);
-            }
-        } else if(onlyshowin) {
-            g_free(onlyshowin);
-            g_free(categories);
-            return NULL;
-        }
-        
-        g_free(onlyshowin);
-        g_free(categories);
-    }
-    
-    app_menu_item = XFCE_APP_MENU_ITEM(xfce_app_menu_item_new());
-    
-    if(!name && !xfce_desktop_entry_get_string(entry, "Name", TRUE, &name)) {
-        gchar *tmp, *tmp1;
-        
-        tmp = g_filename_to_utf8(xfce_desktop_entry_get_file(entry), -1,
-                                 NULL, NULL, NULL);
-        if(!tmp)
-            tmp = g_strdup(xfce_desktop_entry_get_file(entry));
-            
-        if((tmp1 = g_strrstr(tmp, ".desktop")))
-            *tmp1 = 0;
-        if((tmp1 = g_strrstr(tmp, "/")))
-            tmp1++;
-        else
-            tmp1 = name;
-        name = g_strdup(tmp1);
-        g_free(tmp);
-    }
-    
-    app_menu_item->priv->name = name;
-    
-    if(!g_utf8_validate(name, -1, NULL)) {
-        g_warning("XfceAppMenuItem: 'name' failed utf8 validation for .desktop file '%s'",
-                xfce_desktop_entry_get_file(entry));
-        gtk_widget_destroy(GTK_WIDGET(app_menu_item));
-        return NULL;
-    }
-    
-    gtk_label_set_text(GTK_LABEL(app_menu_item->priv->accel_label),
-                       app_menu_item->priv->name);
-    
-    if(xfce_desktop_entry_get_string(entry, "Terminal", TRUE, &term)) {
-        app_menu_item->priv->needs_term = (*term == '1'
-                                           || !g_ascii_strcasecmp(term,
-                                                                  "true"));
-        g_free(term);
-    }
-    
-    if(xfce_desktop_entry_get_string(entry, "StartupNotify", TRUE, &snotify)) {
-        app_menu_item->priv->snotify = (*snotify == '1'
-                                        || !g_ascii_strcasecmp(snotify,
-                                                               "true"));
-        g_free(snotify);
-    }
-    
-    if(!xfce_desktop_entry_get_string(entry, "Exec", TRUE, &cmd)) {
-        gtk_widget_destroy(GTK_WIDGET(app_menu_item));
-        return NULL;
-    }
-
-    /* remove quotes around the command (yes, people do that!) */
-    if(cmd[0] == '"') {
-        gint i;
-        
-        for(i = 1; cmd[i - 1] != '\0'; ++i) {
-            if (cmd[i] != '"')
-                cmd[i-1] = cmd[i];
-            else {
-                cmd[i-1] = cmd[i] = ' ';
-                break;
-            }
-        }
-    }
-
-    app_menu_item->priv->command = xfce_expand_variables(cmd, NULL);
-    g_free(cmd);
-    
-    if(show_icon) {
-        xfce_desktop_entry_get_string(entry, "Icon", TRUE, &icon);
-        if(icon) {
-            xfce_app_menu_item_set_icon_name(app_menu_item, icon);
-            g_free(icon);
-        }
-    }
-    
-    dfile = xfce_desktop_entry_get_file(entry);
-    if(dfile)
-        app_menu_item->priv->dot_desktop_filename = g_strdup(dfile);
-    
-    return GTK_WIDGET(app_menu_item);
+    return NULL;
 }
 
 /**
diff --git a/libxfcegui4/xfce-appmenuitem.h b/libxfcegui4/xfce-appmenuitem.h
index 5732af9..0ce0f29 100644
--- a/libxfcegui4/xfce-appmenuitem.h
+++ b/libxfcegui4/xfce-appmenuitem.h
@@ -70,7 +70,7 @@ GtkWidget *xfce_app_menu_item_new_full                (const gchar *label,
                                                        gboolean needs_term,
                                                        gboolean snotify);
 
-GtkWidget *xfce_app_menu_item_new_from_desktop_entry  (XfceDesktopEntry *entry,
+GtkWidget *xfce_app_menu_item_new_from_desktop_entry  (gpointer *entry,
                                                        gboolean show_icon);
 
 void xfce_app_menu_item_set_name                      (XfceAppMenuItem *app_menu_item,



More information about the Xfce4-commits mailing list