With minor changes by David Zeuthen, see the bug for details.
https://bugs.freedesktop.org/show_bug.cgi?id=38535
Signed-off-by: David Zeuthen <davidz@redhat.com>
</doc:para></doc:description></doc:doc>
</property>
+ <property name="DeviceAutoMountHint" type="s" access="read">
+ <doc:doc><doc:description><doc:para>
+ A hint to the desktop that indicates if a device should be automounted.
+ Possible values are:
+ <doc:list>
+ <doc:item>
+ <doc:term>always</doc:term>
+ <doc:definition>Device should always be auto-mounted.</doc:definition>
+ </doc:item>
+ <doc:item>
+ <doc:term>never</doc:term>
+ <doc:definition>Device should never be auto-mounted.</doc:definition>
+ </doc:item>
+ </doc:list>
+ An empty string is interpreted to mean that there is no
+ hint - the desktop auto-mounter should make its own
+ decision of whether to auto-mount the device.
+ </doc:para></doc:description></doc:doc>
+ </property>
+
<property name="JobInProgress" type="b" access="read">
<doc:doc><doc:description><doc:para>
The job properties specify if a job initiated via the
}
void
+device_set_device_auto_mount_hint (Device *device,
+ const gchar *value)
+{
+ if (G_UNLIKELY (g_strcmp0 (device->priv->device_auto_mount_hint, value) != 0))
+ {
+ g_free (device->priv->device_auto_mount_hint);
+ device->priv->device_auto_mount_hint = g_strdup (value);
+ emit_changed (device, "device_auto_mount_hint");
+ }
+}
+
+void
device_set_device_detection_time (Device *device,
guint64 value)
{
gboolean device_presentation_nopolicy;
char *device_presentation_name;
char *device_presentation_icon_name;
+ char *device_auto_mount_hint;
char *id_usage;
char *id_type;
void device_set_job_is_cancellable (Device *device, gboolean value);
void device_set_job_percentage (Device *device, gdouble value);
+void device_set_device_auto_mount_hint (Device *device, const gchar *value);
void device_set_device_detection_time (Device *device, guint64 value);
void device_set_device_media_detection_time (Device *device, guint64 value);
void device_set_device_file (Device *device, const gchar *value);
PROP_0,
PROP_NATIVE_PATH,
+ PROP_DEVICE_AUTOMOUNT_HINT,
PROP_DEVICE_DETECTION_TIME,
PROP_DEVICE_MEDIA_DETECTION_TIME,
PROP_DEVICE_MAJOR,
case PROP_DEVICE_FILE:
g_value_set_string (value, device->priv->device_file);
break;
+ case PROP_DEVICE_AUTOMOUNT_HINT:
+ g_value_set_string (value, device->priv->device_auto_mount_hint);
+ break;
case PROP_DEVICE_FILE_PRESENTATION:
if (device->priv->device_file_presentation != NULL)
g_value_set_string (value, device->priv->device_file_presentation);
NULL,
NULL,
G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_DEVICE_AUTOMOUNT_HINT,
+ g_param_spec_string ("device-auto-mount-hint",
+ NULL,
+ NULL,
+ NULL,
+ G_PARAM_READABLE));
+
g_object_class_install_property (object_class,
PROP_DEVICE_DETECTION_TIME,
g_param_spec_uint64 ("device-detection-time",
{
gboolean hide;
gboolean nopolicy;
+ const gchar *auto_mount_hint;
hide = FALSE;
if (g_udev_device_has_property (device->priv->d, "UDISKS_PRESENTATION_HIDE"))
device_set_device_presentation_icon_name (device, g_udev_device_get_property (device->priv->d,
"UDISKS_PRESENTATION_ICON_NAME"));
+ auto_mount_hint = "";
+ if (g_udev_device_has_property (device->priv->d, "UDISKS_AUTOMOUNT_HINT"))
+ auto_mount_hint = g_udev_device_get_property (device->priv->d, "UDISKS_AUTOMOUNT_HINT");
+
+ device_set_device_auto_mount_hint (device, auto_mount_hint);
+
return TRUE;
}