mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-05-31 01:40:06 +02:00
Add a function to create a GDesktopAppInfo from a GKeyFile. Proposed by
* gio.symbols: * gdesktopappinfo.[hc]: Add a function to create a GDesktopAppInfo from a GKeyFile. Proposed by Josselin Mouette. svn path=/trunk/; revision=7143
This commit is contained in:
parent
fef22bfe23
commit
9d82224015
@ -1,3 +1,7 @@
|
|||||||
|
2008-07-02 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gio/gio-sections.txt: Add g_desktop_app_info_new_from_keyfile
|
||||||
|
|
||||||
2008-07-01 Matthias Clasen <mclasen@redhat.com>
|
2008-07-01 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gio/gio.types: Add missing types. Pointed out by David Zeuthen.
|
* gio/gio.types: Add missing types. Pointed out by David Zeuthen.
|
||||||
|
@ -1172,6 +1172,7 @@ GUnixVolumeMonitorClass
|
|||||||
<TITLE>Desktop file based GAppInfo</TITLE>
|
<TITLE>Desktop file based GAppInfo</TITLE>
|
||||||
GDesktopAppInfo
|
GDesktopAppInfo
|
||||||
g_desktop_app_info_new_from_filename
|
g_desktop_app_info_new_from_filename
|
||||||
|
g_desktop_app_info_new_from_keyfile
|
||||||
g_desktop_app_info_new
|
g_desktop_app_info_new
|
||||||
g_desktop_app_info_get_is_hidden
|
g_desktop_app_info_get_is_hidden
|
||||||
g_desktop_app_info_set_desktop_env
|
g_desktop_app_info_set_desktop_env
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2008-07-02 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
Bug 534639 – add g_desktop_app_info_new_from_keyfile
|
||||||
|
|
||||||
|
* gio.symbols:
|
||||||
|
* gdesktopappinfo.[hc]: Add a function to create a
|
||||||
|
GDesktopAppInfo from a GKeyFile. Proposed by Josselin Mouette.
|
||||||
|
|
||||||
2008-07-02 Wouter Bolsterlee <wbolster@svn.gnome.org>
|
2008-07-02 Wouter Bolsterlee <wbolster@svn.gnome.org>
|
||||||
|
|
||||||
* gappinfo.c: Fix ulink in doc to make gtk-doc happy.
|
* gappinfo.c: Fix ulink in doc to make gtk-doc happy.
|
||||||
|
@ -186,38 +186,27 @@ binary_from_exec (const char *exec)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* g_desktop_app_info_new_from_filename:
|
* g_desktop_app_info_new_from_keyfile:
|
||||||
* @filename: a string containing a file name.
|
* @key_file: an opened #GKeyFile
|
||||||
*
|
*
|
||||||
* Creates a new #GDesktopAppInfo.
|
* Creates a new #GDesktopAppInfo.
|
||||||
*
|
*
|
||||||
* Returns: a new #GDesktopAppInfo or %NULL on error.
|
* Returns: a new #GDesktopAppInfo or %NULL on error.
|
||||||
|
*
|
||||||
|
* Since: 2.18
|
||||||
**/
|
**/
|
||||||
GDesktopAppInfo *
|
GDesktopAppInfo *
|
||||||
g_desktop_app_info_new_from_filename (const char *filename)
|
g_desktop_app_info_new_from_keyfile (GKeyFile *key_file)
|
||||||
{
|
{
|
||||||
GDesktopAppInfo *info;
|
GDesktopAppInfo *info;
|
||||||
GKeyFile *key_file;
|
|
||||||
char *start_group;
|
char *start_group;
|
||||||
char *type;
|
char *type;
|
||||||
char *try_exec;
|
char *try_exec;
|
||||||
|
|
||||||
key_file = g_key_file_new ();
|
|
||||||
|
|
||||||
if (!g_key_file_load_from_file (key_file,
|
|
||||||
filename,
|
|
||||||
G_KEY_FILE_NONE,
|
|
||||||
NULL))
|
|
||||||
{
|
|
||||||
g_key_file_free (key_file);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
start_group = g_key_file_get_start_group (key_file);
|
start_group = g_key_file_get_start_group (key_file);
|
||||||
if (start_group == NULL || strcmp (start_group, G_KEY_FILE_DESKTOP_GROUP) != 0)
|
if (start_group == NULL || strcmp (start_group, G_KEY_FILE_DESKTOP_GROUP) != 0)
|
||||||
{
|
{
|
||||||
g_free (start_group);
|
g_free (start_group);
|
||||||
g_key_file_free (key_file);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
g_free (start_group);
|
g_free (start_group);
|
||||||
@ -229,7 +218,6 @@ g_desktop_app_info_new_from_filename (const char *filename)
|
|||||||
if (type == NULL || strcmp (type, G_KEY_FILE_DESKTOP_TYPE_APPLICATION) != 0)
|
if (type == NULL || strcmp (type, G_KEY_FILE_DESKTOP_TYPE_APPLICATION) != 0)
|
||||||
{
|
{
|
||||||
g_free (type);
|
g_free (type);
|
||||||
g_key_file_free (key_file);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
g_free (type);
|
g_free (type);
|
||||||
@ -245,14 +233,14 @@ g_desktop_app_info_new_from_filename (const char *filename)
|
|||||||
if (t == NULL)
|
if (t == NULL)
|
||||||
{
|
{
|
||||||
g_free (try_exec);
|
g_free (try_exec);
|
||||||
g_key_file_free (key_file);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
g_free (t);
|
g_free (t);
|
||||||
}
|
}
|
||||||
|
g_free (try_exec);
|
||||||
|
|
||||||
info = g_object_new (G_TYPE_DESKTOP_APP_INFO, NULL);
|
info = g_object_new (G_TYPE_DESKTOP_APP_INFO, NULL);
|
||||||
info->filename = g_strdup (filename);
|
info->filename = NULL;
|
||||||
|
|
||||||
info->name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NAME, NULL, NULL);
|
info->name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NAME, NULL, NULL);
|
||||||
info->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, NULL, NULL);
|
info->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, NULL, NULL);
|
||||||
@ -267,8 +255,6 @@ g_desktop_app_info_new_from_filename (const char *filename)
|
|||||||
info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE;
|
info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE;
|
||||||
info->hidden = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_HIDDEN, NULL) != FALSE;
|
info->hidden = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_HIDDEN, NULL) != FALSE;
|
||||||
|
|
||||||
g_key_file_free (key_file);
|
|
||||||
|
|
||||||
info->icon = NULL;
|
info->icon = NULL;
|
||||||
if (info->icon_name)
|
if (info->icon_name)
|
||||||
{
|
{
|
||||||
@ -290,6 +276,37 @@ g_desktop_app_info_new_from_filename (const char *filename)
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_desktop_app_info_new_from_filename:
|
||||||
|
* @filename: a string containing a file name.
|
||||||
|
*
|
||||||
|
* Creates a new #GDesktopAppInfo.
|
||||||
|
*
|
||||||
|
* Returns: a new #GDesktopAppInfo or %NULL on error.
|
||||||
|
**/
|
||||||
|
GDesktopAppInfo *
|
||||||
|
g_desktop_app_info_new_from_filename (const char *filename)
|
||||||
|
{
|
||||||
|
GKeyFile *key_file;
|
||||||
|
GDesktopAppInfo *info = NULL;
|
||||||
|
|
||||||
|
key_file = g_key_file_new ();
|
||||||
|
|
||||||
|
if (g_key_file_load_from_file (key_file,
|
||||||
|
filename,
|
||||||
|
G_KEY_FILE_NONE,
|
||||||
|
NULL))
|
||||||
|
{
|
||||||
|
info = g_desktop_app_info_new_from_keyfile (key_file);
|
||||||
|
if (info)
|
||||||
|
info->filename = g_strdup (filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_key_file_free (key_file);
|
||||||
|
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* g_desktop_app_info_new:
|
* g_desktop_app_info_new:
|
||||||
* @desktop_id: the desktop file id
|
* @desktop_id: the desktop file id
|
||||||
|
@ -46,6 +46,8 @@ struct _GDesktopAppInfoClass
|
|||||||
GType g_desktop_app_info_get_type (void) G_GNUC_CONST;
|
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_filename (const char *filename);
|
||||||
|
GDesktopAppInfo *g_desktop_app_info_new_from_keyfile (GKeyFile *key_file);
|
||||||
|
|
||||||
GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id);
|
GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id);
|
||||||
gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info);
|
gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info);
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ g_app_info_get_default_for_uri_scheme
|
|||||||
#if IN_FILE(__G_DESKTOP_APP_INFO_C__)
|
#if IN_FILE(__G_DESKTOP_APP_INFO_C__)
|
||||||
#ifdef G_OS_UNIX
|
#ifdef G_OS_UNIX
|
||||||
g_desktop_app_info_new_from_filename
|
g_desktop_app_info_new_from_filename
|
||||||
|
g_desktop_app_info_new_from_keyfile
|
||||||
g_desktop_app_info_new
|
g_desktop_app_info_new
|
||||||
g_desktop_app_info_get_type G_GNUC_CONST
|
g_desktop_app_info_get_type G_GNUC_CONST
|
||||||
g_desktop_app_info_get_is_hidden
|
g_desktop_app_info_get_is_hidden
|
||||||
|
Loading…
x
Reference in New Issue
Block a user