[Xfce4-commits] r25731 - in thunar/trunk: . thunar-vfs

Benedikt Meurer benny at xfce.org
Sun May 20 15:06:03 CEST 2007


Author: benny
Date: 2007-05-20 13:06:03 +0000 (Sun, 20 May 2007)
New Revision: 25731

Modified:
   thunar/trunk/ChangeLog
   thunar/trunk/configure.in.in
   thunar/trunk/thunar-vfs/thunar-vfs-volume-freebsd.c
   thunar/trunk/thunar-vfs/thunar-vfs-volume-hal.c
   thunar/trunk/thunar-vfs/thunar-vfs-volume.c
   thunar/trunk/thunar-vfs/thunar-vfs-volume.h
   thunar/trunk/thunar-vfs/thunar-vfs.symbols
Log:
2007-05-20	Benedikt Meurer <benny at xfce.org>

	* thunar-vfs/thunar-vfs-volume-freebsd.c,
	  thunar-vfs/thunar-vfs-volume-hal.c,
	  thunar-vfs/thunar-vfs-volume.{c,h}, thunar-vfs/thunar-vfs.symbols:
	  Apply patch from Brian Tarricone <bjt23 at cornell.edu> to fix
	  invalid invocation of thunar-volman for devices that should be
	  ignored, and add a MOUNTABLE flag for volumes. Bug #2789.
	* configure.in.in: Bump library interface version.




Modified: thunar/trunk/ChangeLog
===================================================================
--- thunar/trunk/ChangeLog	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/ChangeLog	2007-05-20 13:06:03 UTC (rev 25731)
@@ -1,5 +1,15 @@
 2007-05-20	Benedikt Meurer <benny at xfce.org>
 
+	* thunar-vfs/thunar-vfs-volume-freebsd.c,
+	  thunar-vfs/thunar-vfs-volume-hal.c,
+	  thunar-vfs/thunar-vfs-volume.{c,h}, thunar-vfs/thunar-vfs.symbols:
+	  Apply patch from Brian Tarricone <bjt23 at cornell.edu> to fix
+	  invalid invocation of thunar-volman for devices that should be
+	  ignored, and add a MOUNTABLE flag for volumes. Bug #2789.
+	* configure.in.in: Bump library interface version.
+
+2007-05-20	Benedikt Meurer <benny at xfce.org>
+
 	* thunar/Makefile.am: Strip unused characters from the user
 	  interface description files. Bug #3094.
 

Modified: thunar/trunk/configure.in.in
===================================================================
--- thunar/trunk/configure.in.in	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/configure.in.in	2007-05-20 13:06:03 UTC (rev 25731)
@@ -9,7 +9,7 @@
 dnl ***************************
 dnl *** Version information ***
 dnl ***************************
-m4_define([thunar_verinfo], [4:2:2])
+m4_define([thunar_verinfo], [5:0:3])
 m4_define([thunar_version_api], [1])
 m4_define([thunar_version_major], [0])
 m4_define([thunar_version_minor], [8])

Modified: thunar/trunk/thunar-vfs/thunar-vfs-volume-freebsd.c
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs-volume-freebsd.c	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/thunar-vfs/thunar-vfs-volume-freebsd.c	2007-05-20 13:06:03 UTC (rev 25731)
@@ -317,6 +317,9 @@
                       g_strchomp (label);
                       if (G_LIKELY (*label != '\0'))
                         volume_freebsd->label = g_strdup (label);
+
+                      /* if we got this far, the CD should be mountable */
+                      status |= THUNAR_VFS_VOLUME_STATUS_MOUNTABLE;
                     }
                 }
             }
@@ -324,6 +327,11 @@
           close (fd);
         }
     }
+  else
+    {
+      /* FIXME: not sure how to determine mountability */
+      status |= THUNAR_VFS_VOLUME_STATUS_MOUNTABLE;
+    }
 
   /* determine the absolute path to the mount point */
   if (thunar_vfs_path_to_string (volume_freebsd->mount_point, buffer, sizeof (buffer), NULL) > 0)

Modified: thunar/trunk/thunar-vfs/thunar-vfs-volume-hal.c
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs-volume-hal.c	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/thunar-vfs/thunar-vfs-volume-hal.c	2007-05-20 13:06:03 UTC (rev 25731)
@@ -536,6 +536,10 @@
    * a drive, which means non-pollable then, so it's present
    */
   volume_hal->status |= THUNAR_VFS_VOLUME_STATUS_PRESENT;
+  
+  /* figure out if the volume is mountable */
+  if(hv != NULL && libhal_volume_get_fsusage (hv) == LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM)
+    volume_hal->status |= THUNAR_VFS_VOLUME_STATUS_MOUNTABLE;
 
   /* check if the drive requires eject */
   volume_hal->requires_eject = libhal_drive_requires_eject (hd);
@@ -999,11 +1003,19 @@
   _thunar_vfs_return_if_fail (THUNAR_VFS_IS_VOLUME_MANAGER_HAL (manager_hal));
   _thunar_vfs_return_if_fail (manager_hal->context == context);
 
+  /* check if we have a volume here */
+  hv = libhal_volume_from_udi (context, udi);
+
+  /* HAL might want us to ignore this volume for some reason */
+  if (G_UNLIKELY (hv != NULL && libhal_volume_should_ignore (hv)))
+    {
+      libhal_volume_free (hv);
+      return;
+    }
+
   /* emit the "device-added" signal (to support thunar-volman) */
   g_signal_emit_by_name (G_OBJECT (manager_hal), "device-added", udi);
 
-  /* check if we have a volume here */
-  hv = libhal_volume_from_udi (context, udi);
   if (G_LIKELY (hv != NULL))
     {
       /* determine the UDI of the drive to which this volume belongs */

Modified: thunar/trunk/thunar-vfs/thunar-vfs-volume.c
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs-volume.c	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/thunar-vfs/thunar-vfs-volume.c	2007-05-20 13:06:03 UTC (rev 25731)
@@ -1,6 +1,6 @@
 /* $Id$ */
 /*-
- * Copyright (c) 2005-2006 Benedikt Meurer <benny at xfce.org>
+ * Copyright (c) 2005-2007 Benedikt Meurer <benny at xfce.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -245,6 +245,24 @@
 
 
 /**
+ * thunar_vfs_volume_is_mountable:
+ * @volume : a #ThunarVfsVolume instance.
+ *
+ * Determines whether @volume has a valid filesystem and
+ * if it can be mounted.
+ *
+ * Return value: %TRUE if @volume is mountable, else %FALSE.
+ **/
+gboolean
+thunar_vfs_volume_is_mountable (ThunarVfsVolume *volume)
+{
+  g_return_val_if_fail (THUNAR_VFS_IS_VOLUME (volume), FALSE);
+  return (*THUNAR_VFS_VOLUME_GET_CLASS (volume)->get_status) (volume) & THUNAR_VFS_VOLUME_STATUS_MOUNTABLE;
+}
+
+
+
+/**
  * thunar_vfs_volume_is_mounted:
  * @volume : a #ThunarVfsVolume instance.
  *

Modified: thunar/trunk/thunar-vfs/thunar-vfs-volume.h
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs-volume.h	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/thunar-vfs/thunar-vfs-volume.h	2007-05-20 13:06:03 UTC (rev 25731)
@@ -1,6 +1,6 @@
 /* $Id$ */
 /*-
- * Copyright (c) 2005-2006 Benedikt Meurer <benny at xfce.org>
+ * Copyright (c) 2005-2007 Benedikt Meurer <benny at xfce.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -82,15 +82,17 @@
 
 /**
  * ThunarVfsVolumeStatus:
- * @THUNAR_VFS_VOLUME_STATUS_PRESENT : Whether or not a medium is present.
- * @THUNAR_VFS_VOLUME_STATUS_MOUNTED : Whether or not the media is currently mounted.
+ * @THUNAR_VFS_VOLUME_STATUS_PRESENT   : Whether or not a medium is present.
+ * @THUNAR_VFS_VOLUME_STATUS_MOUNTED   : Whether or not the media is currently mounted.
+ * @THUNAR_VFS_VOLUME_STATUS_MOUNTABLE : Whether or not the media can be mounted.
  *
  * Describes the current status of a VFS volume.
  **/
 typedef enum /*< flags >*/
 {
-  THUNAR_VFS_VOLUME_STATUS_MOUNTED = 1 << 0,
-  THUNAR_VFS_VOLUME_STATUS_PRESENT = 1 << 1,
+  THUNAR_VFS_VOLUME_STATUS_MOUNTED   = 1 << 0,
+  THUNAR_VFS_VOLUME_STATUS_PRESENT   = 1 << 1,
+  THUNAR_VFS_VOLUME_STATUS_MOUNTABLE = 1 << 2,
 } ThunarVfsVolumeStatus;
 
 GType                 thunar_vfs_volume_get_type          (void) G_GNUC_CONST;
@@ -101,6 +103,7 @@
 ThunarVfsPath        *thunar_vfs_volume_get_mount_point   (ThunarVfsVolume   *volume);
 
 gboolean              thunar_vfs_volume_is_disc           (ThunarVfsVolume   *volume);
+gboolean              thunar_vfs_volume_is_mountable      (ThunarVfsVolume   *volume);
 gboolean              thunar_vfs_volume_is_mounted        (ThunarVfsVolume   *volume);
 gboolean              thunar_vfs_volume_is_present        (ThunarVfsVolume   *volume);
 gboolean              thunar_vfs_volume_is_ejectable      (ThunarVfsVolume   *volume);

Modified: thunar/trunk/thunar-vfs/thunar-vfs.symbols
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs.symbols	2007-05-20 12:52:55 UTC (rev 25730)
+++ thunar/trunk/thunar-vfs/thunar-vfs.symbols	2007-05-20 13:06:03 UTC (rev 25731)
@@ -1,6 +1,6 @@
 /* $Id$ */
 /*-
- * Copyright (c) 2005-2006 Benedikt Meurer <benny at xfce.org>.
+ * Copyright (c) 2005-2007 Benedikt Meurer <benny at xfce.org>.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -318,6 +318,7 @@
 thunar_vfs_volume_get_status
 thunar_vfs_volume_get_mount_point
 thunar_vfs_volume_is_disc
+thunar_vfs_volume_is_mountable
 thunar_vfs_volume_is_mounted
 thunar_vfs_volume_is_present
 thunar_vfs_volume_is_ejectable



More information about the Xfce4-commits mailing list