[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