Add "default location" support to GMount
authorChristian Kellner <gicmo@gnome.org>
Fri, 9 Oct 2009 13:06:44 +0000 (15:06 +0200)
committerAlexander Larsson <alexl@redhat.com>
Thu, 26 Nov 2009 15:12:18 +0000 (16:12 +0100)
The "default location" of the given mount is a path that reflects
the main entry point for the user (e.g. the home directory, or the
root of the volume).

https://bugzilla.gnome.org/show_bug.cgi?id=561998

gio/gmount.c
gio/gmount.h

index 124583c..0dfd406 100644 (file)
@@ -185,6 +185,37 @@ g_mount_get_root (GMount *mount)
 }
 
 /**
+ * g_mount_get_default_location:
+ * @mount: a #GMount.
+ *
+ * Gets the default location of @mount. The default location of the given
+ * @mount is a path that reflects the main entry point for the user (e.g.
+ * the home directory, or the root of the volume).
+ *
+ * Returns: a #GFile.
+ *      The returned object should be unreffed with
+ *      g_object_unref() when no longer needed.
+ **/
+GFile *
+g_mount_get_default_location (GMount *mount)
+{
+  GMountIface *iface;
+  GFile       *file;
+
+  g_return_val_if_fail (G_IS_MOUNT (mount), NULL);
+
+  iface = G_MOUNT_GET_IFACE (mount);
+  
+  /* Fallback to get_root when default_location () is not available */
+  if (iface->get_default_location)
+    file = (* iface->get_default_location) (mount);
+  else
+    file = (* iface->get_root) (mount);
+
+  return file;
+}
+
+/**
  * g_mount_get_name:
  * @mount: a #GMount.
  * 
index 18e9229..779bac5 100644 (file)
@@ -68,6 +68,7 @@ typedef struct _GMountIface    GMountIface;
  * @unmount_with_operation_finish: Finishes an unmounting operation using a #GMountOperation. Since 2.22.
  * @eject_with_operation: Starts ejecting a #GMount using a #GMountOperation. Since 2.22.
  * @eject_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22.
+ * @get_default_location: Gets a #GFile indication a start location that can be use as the entry point for this mount. Since 2.24.
  *
  * Interface for implementing operations for mounts.
  **/
@@ -154,11 +155,13 @@ struct _GMountIface
   gboolean    (* eject_with_operation_finish) (GMount            *mount,
                                              GAsyncResult        *result,
                                              GError             **error);
+  GFile     * (* get_default_location)      (GMount              *mount);
 };
 
 GType       g_mount_get_type                  (void) G_GNUC_CONST;
 
 GFile     * g_mount_get_root                  (GMount              *mount);
+GFile     * g_mount_get_default_location      (GMount              *mount);
 char      * g_mount_get_name                  (GMount              *mount);
 GIcon     * g_mount_get_icon                  (GMount              *mount);
 char      * g_mount_get_uuid                  (GMount              *mount);