From 355d85b1715e60eb1224b7702f6d2ad6c5974fcf Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 10 Dec 2007 18:51:21 +0000 Subject: [PATCH] Install gdesktopappinfo as unix-specific api svn path=/trunk/; revision=6090 --- docs/reference/ChangeLog | 6 ++++++ docs/reference/gio/gio-docs.xml | 1 + docs/reference/gio/gio-sections.txt | 21 ++++++++++++++++++++- docs/reference/gio/gio.types | 1 + gio/ChangeLog | 6 ++++++ gio/Makefile.am | 1 + gio/gdesktopappinfo.c | 23 +++++++++++------------ gio/gdesktopappinfo.h | 10 +++++----- gio/gio.symbols | 9 +++++++++ 9 files changed, 60 insertions(+), 18 deletions(-) diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 41dc83a..d9a14c0 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,9 @@ +2007-12-10 Matthias Clasen + + * gio/gio-sections.txt: + * gio/gio-docs.xml: + * gio/gio.types: Add gdesktopappinfo + 2007-12-10 Bastien Nocera * glib/tmpl/keyfile.sgml: Mention the difference diff --git a/docs/reference/gio/gio-docs.xml b/docs/reference/gio/gio-docs.xml index aa00127..0f2c150 100644 --- a/docs/reference/gio/gio-docs.xml +++ b/docs/reference/gio/gio-docs.xml @@ -67,6 +67,7 @@ File types and applications + diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 785d013..8a63751 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -134,7 +134,6 @@ g_file_enumerator_close_finish g_file_enumerator_is_closed g_file_enumerator_has_pending g_file_enumerator_set_pending -g_output_stream_clear_pending GFileEnumeratorClass G_FILE_ENUMERATOR @@ -631,6 +630,7 @@ g_output_stream_close_finish g_output_stream_is_closed g_output_stream_has_pending g_output_stream_set_pending +g_output_stream_clear_pending GOutputStreamClass G_OUTPUT_STREAM @@ -1126,6 +1126,25 @@ g_unix_mount_monitor_get_type
+gdesktopappinfo +Desktop file based GAppInfo +GDesktopAppInfo +g_desktop_app_info_new_from_filename +g_desktop_app_info_new +g_desktop_app_info_get_is_hidden + +GDesktopAppInfoClass +G_TYPE_DESKTOP_APP_INFO +G_DESKTOP_APP_INFO +G_DESKTOP_APP_INFO_CLASS +G_IS_DESKTOP_APP_INFO +G_IS_DESKTOP_APP_INFO_CLASS +G_DESKTOP_APP_INFO_GET_CLASS + +g_desktop_app_info_get_type +
+ +
giomodule GIOModule GIOModule diff --git a/docs/reference/gio/gio.types b/docs/reference/gio/gio.types index e28b66a..52e494a 100644 --- a/docs/reference/gio/gio.types +++ b/docs/reference/gio/gio.types @@ -4,6 +4,7 @@ g_unix_mount_monitor_get_type g_data_output_stream_get_type g_unix_output_stream_get_type g_unix_input_stream_get_type +g_desktop_app_info_get_type g_memory_input_stream_get_type g_volume_get_type g_file_monitor_get_type diff --git a/gio/ChangeLog b/gio/ChangeLog index d9c7f9a..0ab7354 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,9 @@ +2007-12-10 Matthias Clasen + + * Makefile.am: Install gdesktopappinfo.h as unix-specific header. + * gio.symbols: + * gdesktopappinfo.[hc]: Remove _-prefixes + 2007-12-10 Tor Lillqvist * glocalfile.c: Add some more G_OS_WIN32 conditionals to silence diff --git a/gio/Makefile.am b/gio/Makefile.am index cff20d6..3516aaf 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -104,6 +104,7 @@ unix_sources = \ giounixincludedir=$(includedir)/gio-unix-2.0/gio giounixinclude_HEADERS = \ + gdesktopappinfo.h \ gunixmounts.h \ gunixinputstream.h \ gunixoutputstream.h \ diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 1849fbd..79ec4d2 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -72,7 +72,6 @@ struct _GDesktopAppInfo /* FIXME: what about StartupWMClass ? */ }; -#define g_desktop_app_info_get_type _g_desktop_app_info_get_type G_DEFINE_TYPE_WITH_CODE (GDesktopAppInfo, g_desktop_app_info, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_APP_INFO, g_desktop_app_info_iface_init)) @@ -152,7 +151,7 @@ g_desktop_app_info_init (GDesktopAppInfo *local) * Returns: a new #GDesktopAppInfo or %NULL on error. **/ GDesktopAppInfo * -_g_desktop_app_info_new_from_filename (const char *filename) +g_desktop_app_info_new_from_filename (const char *filename) { GDesktopAppInfo *info; GKeyFile *key_file; @@ -258,7 +257,7 @@ _g_desktop_app_info_new_from_filename (const char *filename) * Returns: a new #GDesktopAppInfo. **/ GDesktopAppInfo * -_g_desktop_app_info_new (const char *desktop_id) +g_desktop_app_info_new (const char *desktop_id) { GDesktopAppInfo *appinfo; const char * const *dirs; @@ -273,7 +272,7 @@ _g_desktop_app_info_new (const char *desktop_id) char *p; filename = g_build_filename (dirs[i], desktop_id, NULL); - appinfo = _g_desktop_app_info_new_from_filename (filename); + appinfo = g_desktop_app_info_new_from_filename (filename); g_free (filename); if (appinfo != NULL) { @@ -287,7 +286,7 @@ _g_desktop_app_info_new (const char *desktop_id) *p = '/'; filename = g_build_filename (dirs[i], basename, NULL); - appinfo = _g_desktop_app_info_new_from_filename (filename); + appinfo = g_desktop_app_info_new_from_filename (filename); g_free (filename); if (appinfo != NULL) { @@ -304,7 +303,7 @@ _g_desktop_app_info_new (const char *desktop_id) found: appinfo->desktop_id = g_strdup (desktop_id); - if (_g_desktop_app_info_get_is_hidden (appinfo)) + if (g_desktop_app_info_get_is_hidden (appinfo)) { g_object_unref (appinfo); appinfo = NULL; @@ -381,7 +380,7 @@ g_desktop_app_info_get_name (GAppInfo *appinfo) * Returns: %TRUE if hidden, %FALSE otherwise. **/ gboolean -_g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info) +g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info) { return info->hidden; } @@ -1437,7 +1436,7 @@ g_app_info_create_from_commandline (const char *commandline, run_update_command ("update-desktop-database", "applications"); - info = _g_desktop_app_info_new_from_filename (filename); + info = g_desktop_app_info_new_from_filename (filename); g_free (filename); if (info == NULL) g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, @@ -1509,7 +1508,7 @@ g_app_info_get_all_for_type (const char *content_type) { char *desktop_entry = l->data; - info = _g_desktop_app_info_new (desktop_entry); + info = g_desktop_app_info_new (desktop_entry); if (info) { if (app_info_in_list (G_APP_INFO (info), infos)) @@ -1550,7 +1549,7 @@ g_app_info_get_default_for_type (const char *content_type, { char *desktop_entry = l->data; - info = (GAppInfo *)_g_desktop_app_info_new (desktop_entry); + info = (GAppInfo *)g_desktop_app_info_new (desktop_entry); if (info) { if (must_support_uris && !g_app_info_supports_uris (info)) @@ -1614,11 +1613,11 @@ get_apps_from_dir (GHashTable *apps, /* Use _extended so we catch NULLs too (hidden) */ if (!g_hash_table_lookup_extended (apps, desktop_id, NULL, NULL)) { - appinfo = _g_desktop_app_info_new_from_filename (filename); + appinfo = g_desktop_app_info_new_from_filename (filename); /* Don't return apps that don't take arguments */ if (appinfo && - _g_desktop_app_info_get_is_hidden (appinfo) && + g_desktop_app_info_get_is_hidden (appinfo) && strstr (appinfo->exec,"%U") == NULL && strstr (appinfo->exec,"%u") == NULL && strstr (appinfo->exec,"%f") == NULL && diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index 8c87536..0f667dc 100644 --- a/gio/gdesktopappinfo.h +++ b/gio/gdesktopappinfo.h @@ -27,7 +27,7 @@ G_BEGIN_DECLS -#define G_TYPE_DESKTOP_APP_INFO (_g_desktop_app_info_get_type ()) +#define G_TYPE_DESKTOP_APP_INFO (g_desktop_app_info_get_type ()) #define G_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfo)) #define G_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) #define G_IS_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DESKTOP_APP_INFO)) @@ -42,11 +42,11 @@ struct _GDesktopAppInfoClass GObjectClass parent_class; }; -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 (const char *desktop_id); -gboolean _g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info); +GDesktopAppInfo *g_desktop_app_info_new_from_filename (const char *filename); +GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id); +gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info); G_END_DECLS diff --git a/gio/gio.symbols b/gio/gio.symbols index f6853d9..0fe7456 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -61,6 +61,15 @@ g_app_info_get_default_for_uri_scheme #endif +#if IN_HEADER(__G_DESKTOP_APP_INFO_H__) +#if IN_FILE(__G_DESKTOP_APP_INFO_C__) +g_desktop_app_info_new_from_filename +g_desktop_app_info_new +g_desktop_app_info_get_is_hidden +#endif +#endif + + #if IN_HEADER(__G_ASYNC_RESULT_H__) #if IN_FILE(__G_ASYNC_RESULT_C__) g_async_result_get_type G_GNUC_CONST -- 2.7.4