[gvfs/wip/udisks2] udisks2: use udisks hints for name and icon
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gvfs/wip/udisks2] udisks2: use udisks hints for name and icon
- Date: Fri, 30 Sep 2011 14:26:21 +0000 (UTC)
commit 00ddbbb507406fa295c1e9c8540d2c69c5f7aa00
Author: David Zeuthen <davidz redhat com>
Date: Fri Sep 30 10:23:26 2011 -0400
udisks2: use udisks hints for name and icon
For example, these two udev rules matches a) disk; and b) first
partition on my HP usb stick:
SUBSYSTEMS=="block", ID_SERIAL=="HP_v125w_3S0208300278-0:0", ENV{DEVTYPE}=="disk", ENV{UDISKS_NAME}="Overriden Name", ENV{UDISKS_ICON_NAME}="gnome-help"
SUBSYSTEMS=="block", ID_SERIAL=="HP_v125w_3S0208300278-0:0", ENV{DEVTYPE}=="partition", ENV{UDISKS_NAME}="Overriden Volume", ENV{UDISKS_ICON_NAME}="calc"
and gives this result
Drive(1): Overriden Name
Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
ids:
unix-device: '/dev/sdb'
themed icons: [gnome-help] [gnome]
is_media_removable=1
has_media=1
is_media_check_automatic=1
can_poll_for_media=0
can_eject=1
can_start=0
can_stop=0
start_stop_type=unknown
Volume(0): Overriden Volume
Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
ids:
unix-device: '/dev/sdb1'
uuid: '3919-1907'
label: 'DOS'
themed icons: [calc]
can_mount=0
can_eject=1
should_automount=0
Signed-off-by: David Zeuthen <davidz redhat com>
monitor/udisks2/gvfsudisks2volume.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/monitor/udisks2/gvfsudisks2volume.c b/monitor/udisks2/gvfsudisks2volume.c
index efd68e8..94e686c 100644
--- a/monitor/udisks2/gvfsudisks2volume.c
+++ b/monitor/udisks2/gvfsudisks2volume.c
@@ -206,6 +206,8 @@ update_volume (GVfsUDisks2Volume *volume)
if (volume->block != NULL)
{
+ const gchar *hint;
+
volume->dev = makedev (udisks_block_get_major (volume->block), udisks_block_get_minor (volume->block));
volume->device_file = udisks_block_dup_device (volume->block);
@@ -269,6 +271,20 @@ update_volume (GVfsUDisks2Volume *volume)
g_object_unref (udisks_drive);
}
+
+ /* Use hints, if available */
+ hint = udisks_block_get_hint_name (volume->block);
+ if (hint != NULL && strlen (hint) > 0)
+ {
+ g_free (volume->name);
+ volume->name = g_strdup (hint);
+ }
+ hint = udisks_block_get_hint_icon_name (volume->block);
+ if (hint != NULL && strlen (hint) > 0)
+ {
+ g_clear_object (&volume->icon);
+ volume->icon = g_themed_icon_new_with_default_fallbacks (hint);
+ }
}
else
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]