From f552689058c27ccebaf4271c4a5afc4197b74a8f Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sat, 13 Mar 2010 18:11:31 -0500 Subject: [PATCH] [GDesktopAppInfo] New function g_desktop_app_info_get_filename This allows access to the full file path, where possible. https://bugzilla.gnome.org/show_bug.cgi?id=612832 --- docs/reference/gio/gio-sections.txt | 1 + gio/gdesktopappinfo.c | 17 +++++++++++++++++ gio/gdesktopappinfo.h | 2 ++ gio/gio.symbols | 1 + 4 files changed, 21 insertions(+) diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 057895fc9..116ab5562 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -1391,6 +1391,7 @@ GDesktopAppInfo g_desktop_app_info_new_from_filename g_desktop_app_info_new_from_keyfile g_desktop_app_info_new +g_desktop_app_info_get_filename g_desktop_app_info_get_is_hidden g_desktop_app_info_set_desktop_env GDesktopAppInfoLookup diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index e7f214b1e..97ffee5d7 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -494,6 +494,23 @@ g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info) return info->hidden; } +/** + * g_desktop_app_info_get_filename: + * @info: a #GDesktopAppInfo + * + * When @info was created from a known filename, return it. In some + * situations such as the #GDesktopAppInfo returned from + * g_desktop_app_info_new_from_keyfile(), this function will return %NULL. + * + * Returns: The full path to the file for @info, or %NULL if not known. + * Since: 2.24 + */ +const char * +g_desktop_app_info_get_filename (GDesktopAppInfo *info) +{ + return info->filename; +} + static const char * g_desktop_app_info_get_description (GAppInfo *appinfo) { diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index 6e51545f2..48c969302 100644 --- a/gio/gdesktopappinfo.h +++ b/gio/gdesktopappinfo.h @@ -48,6 +48,8 @@ GType g_desktop_app_info_get_type (void) G_GNUC_CONST; GDesktopAppInfo *g_desktop_app_info_new_from_filename (const char *filename); GDesktopAppInfo *g_desktop_app_info_new_from_keyfile (GKeyFile *key_file); +const char * g_desktop_app_info_get_filename (GDesktopAppInfo *info); + GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id); gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info); diff --git a/gio/gio.symbols b/gio/gio.symbols index 798ab9ae0..62a99d7ac 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -75,6 +75,7 @@ g_app_info_reset_type_associations g_desktop_app_info_new_from_filename g_desktop_app_info_new_from_keyfile g_desktop_app_info_new +g_desktop_app_info_get_filename g_desktop_app_info_get_type G_GNUC_CONST g_desktop_app_info_get_is_hidden g_desktop_app_info_set_desktop_env