Re: [patch] fstab-sync mount point names
- From: David Zeuthen <david fubar dk>
- To: gnome-vfs-list gnome org
- Cc: utopia-list gnome org, alexl redhat com
- Subject: Re: [patch] fstab-sync mount point names
- Date: Mon, 30 Aug 2004 19:24:16 +0200
On Mon, 2004-08-30 at 19:16 +0200, David Zeuthen wrote:
> Hi Alex,
>
> This simple patch adds some more heuristics to recognize the mount point
> names generated by fstab-sync. Also, this patch uses the some of new and
> cool icons Jimmac put in gnome-icon-themes. You can find a screenshot
> right here
>
Attached is an improved version that fixes one leak compared to the
inital patch. Doh!
David
? gnome-vfs-fstab-sync-mounts-2.patch
? gnome-vfs-fstab-sync-mounts.patch
? imported/Makefile
? imported/Makefile.in
? imported/neon/Makefile.in
? libgnomevfs/s-enum-types-c
? libgnomevfs/s-enum-types-h
? test/test-dns-sd
? test/test-mime-info-cache
Index: libgnomevfs/gnome-vfs-volume-monitor-daemon.c
===================================================================
RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-volume-monitor-daemon.c,v
retrieving revision 1.12
diff -u -p -r1.12 gnome-vfs-volume-monitor-daemon.c
--- libgnomevfs/gnome-vfs-volume-monitor-daemon.c 26 Aug 2004 13:36:58 -0000 1.12
+++ libgnomevfs/gnome-vfs-volume-monitor-daemon.c 30 Aug 2004 17:22:00 -0000
@@ -292,9 +292,28 @@ get_device_type_from_device_and_mount (c
}
} else {
basename = g_path_get_basename (mount_path);
+
if (g_str_has_prefix (basename, "cdrom") ||
g_str_has_prefix (basename, "cdwriter") ||
- g_str_has_prefix (basename, "burn")) {
+ g_str_has_prefix (basename, "burn") ||
+ g_str_has_prefix (basename, "cdr") ||
+ g_str_has_prefix (basename, "cdrw") ||
+ g_str_has_prefix (basename, "dvdrom") ||
+ g_str_has_prefix (basename, "dvdram") ||
+ g_str_has_prefix (basename, "dvdr") ||
+ g_str_has_prefix (basename, "dvdrw") ||
+ g_str_has_prefix (basename, "cdrom_dvdrom") ||
+ g_str_has_prefix (basename, "cdrom_dvdram") ||
+ g_str_has_prefix (basename, "cdrom_dvdr") ||
+ g_str_has_prefix (basename, "cdrom_dvdrw") ||
+ g_str_has_prefix (basename, "cdr_dvdrom") ||
+ g_str_has_prefix (basename, "cdr_dvdram") ||
+ g_str_has_prefix (basename, "cdr_dvdr") ||
+ g_str_has_prefix (basename, "cdr_dvdrw") ||
+ g_str_has_prefix (basename, "cdrw_dvdrom") ||
+ g_str_has_prefix (basename, "cdrw_dvdram") ||
+ g_str_has_prefix (basename, "cdrw_dvdr") ||
+ g_str_has_prefix (basename, "cdrw_dvdrw")) {
g_free (basename);
return GNOME_VFS_DEVICE_TYPE_CDROM;
} else if (g_str_has_prefix (basename, "floppy")) {
@@ -310,6 +329,10 @@ get_device_type_from_device_and_mount (c
g_free (basename);
return GNOME_VFS_DEVICE_TYPE_CAMERA;
} else if (g_str_has_prefix (basename, "memstick") ||
+ g_str_has_prefix (basename, "compact_flash") ||
+ g_str_has_prefix (basename, "memory_stick") ||
+ g_str_has_prefix (basename, "smart_media") ||
+ g_str_has_prefix (basename, "sd_mmc") ||
g_str_has_prefix (basename, "ram")) {
g_free (basename);
return GNOME_VFS_DEVICE_TYPE_MEMORY_STICK;
@@ -372,7 +395,7 @@ make_utf8 (const char *str)
}
static char *
-get_drive_icon_from_type (GnomeVFSDeviceType type)
+get_drive_icon_from_type (GnomeVFSDeviceType type, const char *mount_path)
{
char *icon_name;
@@ -385,6 +408,22 @@ get_drive_icon_from_type (GnomeVFSDevice
case GNOME_VFS_DEVICE_TYPE_SMB:
icon_name = "gnome-fs-smb";
break;
+
+ case GNOME_VFS_DEVICE_TYPE_HARDDRIVE:
+ if (mount_path != NULL) {
+ char *basename;
+ basename = g_path_get_basename (mount_path);
+ if (g_str_has_prefix (basename,
+ "usbdisk")) {
+ icon_name = "gnome-dev-removable-usb";
+ } else if (g_str_has_prefix (basename,
+ "ieee1394disk")) {
+ icon_name = "gnome-dev-removable-ieee1394";
+ }
+ g_free (basename);
+ }
+ break;
+
default:
break;
}
@@ -393,12 +432,31 @@ get_drive_icon_from_type (GnomeVFSDevice
}
static char *
-get_icon_from_type (GnomeVFSDeviceType type)
+get_icon_from_type (GnomeVFSDeviceType type, const char *mount_path)
{
char *icon_name;
+ char *basename;
+
+ if (mount_path != NULL) {
+ basename = g_path_get_basename (mount_path);
+ } else {
+ basename = NULL;
+ }
icon_name = "gnome-dev-harddisk";
switch (type) {
+ case GNOME_VFS_DEVICE_TYPE_HARDDRIVE:
+ if (basename != NULL) {
+ if (g_str_has_prefix (basename,
+ "usbdisk")) {
+ icon_name = "gnome-dev-harddisk-usb";
+ } else if (g_str_has_prefix (basename,
+ "ieee1394disk")) {
+ icon_name = "gnome-dev-harddisk-ieee1394";
+ }
+ }
+ break;
+
case GNOME_VFS_DEVICE_TYPE_AUDIO_CD:
icon_name = "gnome-dev-cdrom-audio";
break;
@@ -420,6 +478,21 @@ get_icon_from_type (GnomeVFSDeviceType t
case GNOME_VFS_DEVICE_TYPE_MEMORY_STICK:
icon_name = "gnome-dev-memory";
+ if (basename != NULL) {
+ if (g_str_has_prefix (basename,
+ "compact_flash")) {
+ icon_name = "gnome-dev-media-cf";
+ } else if (g_str_has_prefix (basename,
+ "memory_stick")) {
+ icon_name = "gnome-dev-media-ms";
+ } else if (g_str_has_prefix (basename,
+ "smart_media")) {
+ icon_name = "gnome-dev-media-sm";
+ } else if (g_str_has_prefix (basename,
+ "sd_mmc")) {
+ icon_name = "gnome-dev-media-sdmmc";
+ }
+ }
break;
case GNOME_VFS_DEVICE_TYPE_NFS:
@@ -434,6 +507,10 @@ get_icon_from_type (GnomeVFSDeviceType t
break;
}
+ if (basename != NULL) {
+ g_free (basename);
+ }
+
return g_strdup (icon_name);
}
@@ -495,6 +572,34 @@ get_drive_name (GnomeVFSVolumeMonitor *v
struct { char *machine; char *readable; } readable_table[] = {
{ "floppy", N_("Floppy") },
{ "cdrom", N_("CD-ROM") },
+
+ { "cdr", N_("CD-R") },
+ { "cdrw", N_("CD-RW") },
+ { "dvdrom", N_("DVD-ROM") },
+ { "dvdram", N_("DVD-RAM") },
+ { "dvdr", N_("DVD-R") },
+ { "dvdrw", N_("DVD-RW") },
+ { "cdrom_dvdrom", N_("CD-ROM/DVD-ROM") },
+ { "cdrom_dvdram", N_("CD-ROM/DVD-RAM") },
+ { "cdrom_dvdr", N_("CD-ROM/DVD-R") },
+ { "cdrom_dvdrw", N_("CD-ROM/DVD-RW") },
+ { "cdr_dvdrom", N_("CD-R/DVD-ROM") },
+ { "cdr_dvdram", N_("CD-R/DVD-RAM") },
+ { "cdr_dvdr", N_("CD-R/DVD-R") },
+ { "cdr_dvdrw", N_("CD-R/DVD-RW") },
+ { "cdrw_dvdrom", N_("CD-RW/DVD-ROM") },
+ { "cdrw_dvdram", N_("CD-RW/DVD-RAM") },
+ { "cdrw_dvdr", N_("CD-RW/DVD-R") },
+ { "cdrw_dvdrw", N_("CD-RW/DVD-RW") },
+
+ { "idedisk", N_("Disk") },
+ { "usbdisk", N_("USB Drive") },
+ { "ieee1394disk", N_("IEEE1394 Drive") },
+ { "compact_flash", N_("CF") },
+ { "sd_mmc", N_("SD/MMC") },
+ { "memory_stick", N_("Memory Stick") },
+ { "smart_media", N_("Smart Media") },
+
{ "zip", N_("Zip Drive") },
{ "memstick", N_("Memory Stick") },
{ "camera", N_("Camera") },
@@ -591,7 +696,7 @@ create_drive_from_mount_point (GnomeVFSV
}
}
- drive->priv->icon = get_drive_icon_from_type (drive->priv->device_type);
+ drive->priv->icon = get_drive_icon_from_type (drive->priv->device_type, mount->mount_path);
drive->priv->display_name = get_drive_name (volume_monitor, drive, mount);
@@ -836,7 +941,7 @@ create_vol_from_mount (GnomeVFSVolumeMon
g_free (display_name);
g_free (utf8_name);
- vol->priv->icon = get_icon_from_type (vol->priv->device_type);
+ vol->priv->icon = get_icon_from_type (vol->priv->device_type, mount->mount_path);
vol->priv->is_user_visible = 0;
switch (vol->priv->device_type) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]