Prevent Places gadget from segfaulting Enlightenment on FreeBSD, add UFS/ZFS detection and tag them with FreeBSD icon. Free spaces on disks aren't still shown pretty much right (172,1GB remaining from 39,1GB, -340%) and opening a mounted disk opens root filesystem in EFM and not the right dir, but at least it allows simple mount / umount and shows all disks properly.
SVN revision: 57250
This commit is contained in:
parent
819224b6e2
commit
72324ca29d
|
@ -7,6 +7,7 @@ images
|
|||
image: "tag_ext3.png" COMP;
|
||||
image: "tag_fat.png" COMP;
|
||||
image: "tag_hfs.png" COMP;
|
||||
image: "tag_ufs.png" COMP;
|
||||
image: "tag_dvd.png" COMP;
|
||||
}
|
||||
|
||||
|
@ -160,6 +161,11 @@ collections
|
|||
inherit: "default" 0.0;
|
||||
color: 255 255 255 240;
|
||||
}
|
||||
description { state: "ufs" 0.0;
|
||||
image.normal: "tag_ufs.png";
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 240;
|
||||
}
|
||||
description { state: "dvd" 0.0;
|
||||
image.normal: "tag_dvd.png";
|
||||
inherit: "default" 0.0;
|
||||
|
@ -453,6 +459,12 @@ collections
|
|||
action: STATE_SET "hfs" 0.0;
|
||||
target: "icon_tag";
|
||||
}
|
||||
program { name: "set_tag_ufs";
|
||||
signal: "icon,tag,ufs";
|
||||
source: "places";
|
||||
action: STATE_SET "ufs" 0.0;
|
||||
target: "icon_tag";
|
||||
}
|
||||
program { name: "set_tag_dvd";
|
||||
signal: "icon,tag,dvd";
|
||||
source: "places";
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
|
@ -268,11 +268,12 @@ places_fill_box(Evas_Object *box)
|
|||
}
|
||||
else evas_object_del(icon);
|
||||
|
||||
|
||||
//set partition type tag
|
||||
if (!strcmp(vol->fstype, "ext2") || !strcmp(vol->fstype, "ext3") ||
|
||||
!strcmp(vol->fstype, "ext4") || !strcmp(vol->fstype, "reiserfs"))
|
||||
edje_object_signal_emit(o, "icon,tag,ext3", "places");
|
||||
else if (!strcmp(vol->fstype, "ufs") || !strcmp(vol->fstype, "zfs"))
|
||||
edje_object_signal_emit(o, "icon,tag,ufs", "places");
|
||||
else if (!strcmp(vol->fstype, "vfat") || !strcmp(vol->fstype, "ntfs") ||
|
||||
!strcmp(vol->fstype, "ntfs-3g"))
|
||||
edje_object_signal_emit(o, "icon,tag,fat", "places");
|
||||
|
@ -282,7 +283,7 @@ places_fill_box(Evas_Object *box)
|
|||
edje_object_signal_emit(o, "icon,tag,dvd", "places");
|
||||
|
||||
//set mount/eject icon
|
||||
if (vol->requires_eject || (vol->mounted && strcmp(vol->mount_point, "/")) ||
|
||||
if (vol->requires_eject || (vol->mounted && vol->mount_point ? vol->mount_point[0] != '/' : 1) ||
|
||||
!strcmp(vol->bus, "usb")) //Some usb key don't have requires_eject set (probably an hal error)
|
||||
edje_object_signal_emit(o, "icon,eject,show", "places");
|
||||
else
|
||||
|
@ -548,12 +549,16 @@ _places_volume_add(const char *udi)
|
|||
v = E_NEW(Volume, 1);
|
||||
if (!v) return;
|
||||
|
||||
// safe defaults
|
||||
v->udi = eina_stringshare_add(udi);
|
||||
v->valid = 0;
|
||||
v->obj = NULL;
|
||||
v->icon = NULL;
|
||||
v->to_mount = 0;
|
||||
v->force_open = 0;
|
||||
v->drive_type = "";
|
||||
v->model = "";
|
||||
v->bus = "";
|
||||
|
||||
if (places_conf->auto_mount)
|
||||
v->to_mount = 1;
|
||||
|
@ -976,6 +981,8 @@ _places_volume_properties_cb(void *data, void *reply_data, DBusError *error)
|
|||
_places_storage_properties_cb, v);
|
||||
}
|
||||
|
||||
//_places_print_volume(v);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue