From a3b40f2cdc0f79426160f0a46249ba7b46a030bc Mon Sep 17 00:00:00 2001
From: Benedikt Meurer <benny@xfce.org>
Date: Sun, 7 Jan 2007 23:10:41 +0000
Subject: [PATCH] 2007-01-08	Benedikt Meurer <benny@xfce.org>

	* thunar-vfs/thunar-vfs-volume-hal.c,
	  thunar-vfs/thunar-vfs-volume.{c,h}: Add support for memory cards and
	  generic removable disk drives. Bug #2652.




(Old svn revision: 24301)
---
 ChangeLog                          |  6 ++++++
 thunar-vfs/thunar-vfs-volume-hal.c | 10 +++++++++
 thunar-vfs/thunar-vfs-volume.c     |  8 +++++++
 thunar-vfs/thunar-vfs-volume.h     | 34 +++++++++++++++++-------------
 4 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9d76fa5f9..0dd7f7d80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-01-08	Benedikt Meurer <benny@xfce.org>
+
+	* thunar-vfs/thunar-vfs-volume-hal.c,
+	  thunar-vfs/thunar-vfs-volume.{c,h}: Add support for memory cards and
+	  generic removable disk drives. Bug #2652.
+
 2007-01-07	Benedikt Meurer <benny@xfce.org>
 
 	* thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-volume-hal.c,
diff --git a/thunar-vfs/thunar-vfs-volume-hal.c b/thunar-vfs/thunar-vfs-volume-hal.c
index ae70a22a8..37feb5c21 100644
--- a/thunar-vfs/thunar-vfs-volume-hal.c
+++ b/thunar-vfs/thunar-vfs-volume-hal.c
@@ -571,6 +571,11 @@ thunar_vfs_volume_hal_update (ThunarVfsVolumeHal *volume_hal,
       volume_hal->kind = THUNAR_VFS_VOLUME_KIND_AUDIO_PLAYER;
       break;
 
+    case LIBHAL_DRIVE_TYPE_SMART_MEDIA:
+    case LIBHAL_DRIVE_TYPE_SD_MMC:
+      volume_hal->kind = THUNAR_VFS_VOLUME_KIND_MEMORY_CARD;
+      break;
+
     default:
       /* check if the drive is connected to the USB bus */
       if (libhal_drive_get_bus (hd) == LIBHAL_DRIVE_BUS_USB)
@@ -578,6 +583,11 @@ thunar_vfs_volume_hal_update (ThunarVfsVolumeHal *volume_hal,
           /* we consider the drive to be an USB stick */
           volume_hal->kind = THUNAR_VFS_VOLUME_KIND_USBSTICK;
         }
+      else if (libhal_drive_uses_removable_media (hd))
+        {
+          /* fallback to generic removable disk */
+          volume_hal->kind = THUNAR_VFS_VOLUME_KIND_REMOVABLE_DISK;
+        }
       else
         {
           /* fallback to harddisk drive */
diff --git a/thunar-vfs/thunar-vfs-volume.c b/thunar-vfs/thunar-vfs-volume.c
index 2fa32a0dc..d7ac73895 100644
--- a/thunar-vfs/thunar-vfs-volume.c
+++ b/thunar-vfs/thunar-vfs-volume.c
@@ -335,6 +335,8 @@ thunar_vfs_volume_is_removable (ThunarVfsVolume *volume)
     case THUNAR_VFS_VOLUME_KIND_USBSTICK:
     case THUNAR_VFS_VOLUME_KIND_AUDIO_PLAYER:
     case THUNAR_VFS_VOLUME_KIND_AUDIO_CD:
+    case THUNAR_VFS_VOLUME_KIND_MEMORY_CARD:
+    case THUNAR_VFS_VOLUME_KIND_REMOVABLE_DISK:
       return TRUE;
 
     default:
@@ -451,6 +453,12 @@ dvdr:
       if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-cdrom-audio"))
         return "gnome-dev-cdrom-audio";
       goto cdrom;
+      
+    case THUNAR_VFS_VOLUME_KIND_MEMORY_CARD:
+    case THUNAR_VFS_VOLUME_KIND_REMOVABLE_DISK:
+      if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-removable"))
+        return "gnome-dev-removable";
+      break;
 
     default:
       break;
diff --git a/thunar-vfs/thunar-vfs-volume.h b/thunar-vfs/thunar-vfs-volume.h
index cd065dc45..234863f56 100644
--- a/thunar-vfs/thunar-vfs-volume.h
+++ b/thunar-vfs/thunar-vfs-volume.h
@@ -39,21 +39,23 @@ typedef struct _ThunarVfsVolume      ThunarVfsVolume;
 
 /**
  * ThunarVfsVolumeKind:
- * @THUNAR_VFS_VOLUME_KIND_UNKNOWN      : Unknown volume.
- * @THUNAR_VFS_VOLUME_KIND_CDROM        : CD-ROMs.
- * @THUNAR_VFS_VOLUME_KIND_CDR          : CD-Rs.
- * @THUNAR_VFS_VOLUME_KIND_CDRW         : CD-RWs.
- * @THUNAR_VFS_VOLUME_KIND_DVDROM       : DVD-ROMs.
- * @THUNAR_VFS_VOLUME_KIND_DVDRAM       : DVD-RAMs.
- * @THUNAR_VFS_VOLUME_KIND_DVDR         : DVD-Rs.
- * @THUNAR_VFS_VOLUME_KIND_DVDRW        : DVD-RWs.
- * @THUNAR_VFS_VOLUME_KIND_DVDPLUSR     : DVD+Rs.
- * @THUNAR_VFS_VOLUME_KIND_DVDPLUSRW    : DVD+RWs.
- * @THUNAR_VFS_VOLUME_KIND_FLOPPY       : Floppy drives.
- * @THUNAR_VFS_VOLUME_KIND_HARDDISK     : Hard disk drives.
- * @THUNAR_VFS_VOLUME_KIND_USBSTICK     : USB sticks.
- * @THUNAR_VFS_VOLUME_KIND_AUDIO_PLAYER : Portable audio players (i.e. iPod).
- * @THUNAR_VFS_VOLUME_KIND_AUDIO_CD     : Audio CDs.
+ * @THUNAR_VFS_VOLUME_KIND_UNKNOWN        : Unknown volume.
+ * @THUNAR_VFS_VOLUME_KIND_CDROM          : CD-ROMs.
+ * @THUNAR_VFS_VOLUME_KIND_CDR            : CD-Rs.
+ * @THUNAR_VFS_VOLUME_KIND_CDRW           : CD-RWs.
+ * @THUNAR_VFS_VOLUME_KIND_DVDROM         : DVD-ROMs.
+ * @THUNAR_VFS_VOLUME_KIND_DVDRAM         : DVD-RAMs.
+ * @THUNAR_VFS_VOLUME_KIND_DVDR           : DVD-Rs.
+ * @THUNAR_VFS_VOLUME_KIND_DVDRW          : DVD-RWs.
+ * @THUNAR_VFS_VOLUME_KIND_DVDPLUSR       : DVD+Rs.
+ * @THUNAR_VFS_VOLUME_KIND_DVDPLUSRW      : DVD+RWs.
+ * @THUNAR_VFS_VOLUME_KIND_FLOPPY         : Floppy drives.
+ * @THUNAR_VFS_VOLUME_KIND_HARDDISK       : Hard disk drives.
+ * @THUNAR_VFS_VOLUME_KIND_USBSTICK       : USB sticks.
+ * @THUNAR_VFS_VOLUME_KIND_AUDIO_PLAYER   : Portable audio players (i.e. iPod).
+ * @THUNAR_VFS_VOLUME_KIND_AUDIO_CD       : Audio CDs.
+ * @THUNAR_VFS_VOLUME_KIND_MEMORY_CARD    : Memory cards.
+ * @THUNAR_VFS_VOLUME_KIND_REMOVABLE_DISK : Other removable disks.
  *
  * Describes the type of a VFS volume.
  **/
@@ -74,6 +76,8 @@ typedef enum
   THUNAR_VFS_VOLUME_KIND_USBSTICK,
   THUNAR_VFS_VOLUME_KIND_AUDIO_PLAYER,
   THUNAR_VFS_VOLUME_KIND_AUDIO_CD,
+  THUNAR_VFS_VOLUME_KIND_MEMORY_CARD,
+  THUNAR_VFS_VOLUME_KIND_REMOVABLE_DISK,
 } ThunarVfsVolumeKind;
 
 /**
-- 
GitLab