Add g_app_info_get_commandline. Requested by Hans Petter Jansson.
authorMatthias Clasen <matthiasc@src.gnome.org>
Fri, 28 Nov 2008 23:16:45 +0000 (23:16 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 28 Nov 2008 23:16:45 +0000 (23:16 +0000)
        * gio.symbols:
        * gappinfo.[hc]: Add g_app_info_get_commandline. Requested
        by Hans Petter Jansson.

        * gdesktopappinfo.c: And implement it here.

svn path=/trunk/; revision=7706

docs/reference/ChangeLog
docs/reference/gio/gio-sections.txt
gio/ChangeLog
gio/gappinfo.c
gio/gappinfo.h
gio/gdesktopappinfo.c
gio/gio.symbols

index 2e8e139..a345829 100644 (file)
@@ -1,9 +1,13 @@
-@008-11-28  Matthias Clasen  <mclasen@redhat.com>
+2008-11-28  Matthias Clasen  <mclasen@redhat.com>
+
+       * gio/gio-sections.txt: Add g_app_info_get_commandline
+
+2008-11-28  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/tmpl/keyfile.sgml: Explain locale identifiers in
        more detail
 
-@008-11-28  Matthias Clasen  <mclasen@redhat.com>
+2008-11-28  Matthias Clasen  <mclasen@redhat.com>
 
        Bug 562549 – g_byte_array_free should tell how free data
 
index a3cf765..c54272c 100644 (file)
@@ -1066,6 +1066,7 @@ g_app_info_get_id
 g_app_info_get_name
 g_app_info_get_description
 g_app_info_get_executable
+g_app_info_get_commandline
 g_app_info_get_icon
 g_app_info_launch
 g_app_info_supports_files
index 370f994..674b966 100644 (file)
@@ -1,3 +1,13 @@
+2008-11-28  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 555486 – No way to recover command line from GAppInfo
+
+       * gio.symbols:
+       * gappinfo.[hc]: Add g_app_info_get_commandline. Requested
+       by Hans Petter Jansson.
+       
+       * gdesktopappinfo.c: And implement it here.
+
 2008-11-28  Christian Dywan  <christian@imendio.com>
 
        * gappinfo.c: Fix a typo, s/detext/detect. Patch by Enrico Tröger.
index a7feee5..b017247 100644 (file)
@@ -249,12 +249,12 @@ g_app_info_get_description (GAppInfo *appinfo)
 
 /**
  * g_app_info_get_executable:
- * @appinfo: a #GAppInfo.
+ * @appinfo: a #GAppInfo
  * 
  * Gets the executable's name for the installed application.
  *
  * Returns: a string containing the @appinfo's application 
- * binary's name.
+ * binary's name
  **/
 const char *
 g_app_info_get_executable (GAppInfo *appinfo)
@@ -270,6 +270,33 @@ g_app_info_get_executable (GAppInfo *appinfo)
 
 
 /**
+ * g_app_info_get_commandline:
+ * @appinfo: a #GAppInfo
+ * 
+ * Gets the commandline with which the application will be
+ * started.  
+ *
+ * Returns: a string containing the @appinfo's commandline, 
+ *     or %NULL if this information is not available
+ *
+ * Since: 2.20
+ **/
+const char *
+g_app_info_get_commandline (GAppInfo *appinfo)
+{
+  GAppInfoIface *iface;
+  
+  g_return_val_if_fail (G_IS_APP_INFO (appinfo), NULL);
+
+  iface = G_APP_INFO_GET_IFACE (appinfo);
+
+  if (iface->get_commandline)
+    return (* iface->get_commandline) (appinfo);
+  return NULL;
+}
+
+/**
  * g_app_info_set_as_default_for_type:
  * @appinfo: a #GAppInfo.
  * @content_type: the content type.
index 14ac96a..3214c02 100644 (file)
@@ -124,6 +124,7 @@ struct _GAppInfoIface
                                                  GError            **error);
   gboolean     (* can_delete)                   (GAppInfo           *appinfo);
   gboolean     (* do_delete)                    (GAppInfo           *appinfo);
+  const char * (* get_commandline)              (GAppInfo           *appinfo);
 };
 
 GType       g_app_info_get_type                     (void) G_GNUC_CONST;
@@ -138,6 +139,7 @@ const char *g_app_info_get_id                       (GAppInfo             *appin
 const char *g_app_info_get_name                     (GAppInfo             *appinfo);
 const char *g_app_info_get_description              (GAppInfo             *appinfo);
 const char *g_app_info_get_executable               (GAppInfo             *appinfo);
+const char *g_app_info_get_commandline              (GAppInfo             *appinfo);
 GIcon *     g_app_info_get_icon                     (GAppInfo             *appinfo);
 gboolean    g_app_info_launch                       (GAppInfo             *appinfo,
                                                     GList                *files,
index c9dadc2..db907d3 100644 (file)
@@ -479,6 +479,14 @@ g_desktop_app_info_get_executable (GAppInfo *appinfo)
   return info->binary;
 }
 
+static const char *
+g_desktop_app_info_get_commandline (GAppInfo *appinfo)
+{
+  GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo);
+  
+  return info->exec;
+}
+
 static GIcon *
 g_desktop_app_info_get_icon (GAppInfo *appinfo)
 {
@@ -1745,6 +1753,7 @@ g_desktop_app_info_iface_init (GAppInfoIface *iface)
   iface->remove_supports_type = g_desktop_app_info_remove_supports_type;
   iface->can_delete = g_desktop_app_info_can_delete;
   iface->do_delete = g_desktop_app_info_delete;
+  iface->get_commandline = g_desktop_app_info_get_commandline;
 }
 
 static gboolean
index 9074b39..3be1988 100644 (file)
@@ -36,6 +36,7 @@ g_app_info_get_id
 g_app_info_get_name
 g_app_info_get_description
 g_app_info_get_executable
+g_app_info_get_commandline
 g_app_info_get_icon
 g_app_info_launch
 g_app_info_supports_uris