[gvfs/wip/udisks2] udisks2: use udisks hints for name and icon



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]