Work on the Nautilus gio-branch continues. We’re now down to 203 gnome-vfs calls in nautilus (803 initially) and zero in eel (92 originally). Now, 203 calls still sounds like a lot, but lets take a look at what uses gnome-vfs:
1 libnautilus-private/nautilus-file-operations-progress.c
3 libnautilus-private/nautilus-file.c
4 libnautilus-private/nautilus-program-choosing.c
126 libnautilus-private/nautilus-file-operations.c
3 libnautilus-private/nautilus-vfs-utils.c
5 libnautilus-private/nautilus-file-utilities.c
9 libnautilus-private/nautilus-dnd.c
7 src/file-manager/fm-tree-view.c
4 src/file-manager/fm-icon-view.c
1 src/file-manager/fm-directory-view.c
1 src/file-manager/fm-error-reporting.c
8 src/file-manager/fm-directory-view-old.c
5 src/nautilus-main.c
1 src/nautilus-window-manage-views.c
23 src/nautilus-connect-server-dialog.c
Almost all of it is in nautilus-file-operations.c, which is the implementation of things like copying/moving files, and displaying progress and other dialogs for that. This is certainly very important functionality, and it will be a bunch of work converting it, especially since it heavily uses the gnome_vfs_xfer API, which (thankfully) doesn’t exist in gio. But apart from that almost all gnome-vfs use in Nautilus is gone
I’ve also cleaned up the code in several places, removing crufty, old and unused code, in places replacing it with more modern Gtk+/glib functionality. Eel especially has dropped a lot of code. Lots of creds go to Paolo Borelli who has done a bunch of work on this.
On a slightly more end-user interesting tangent, today I updated the fuse code that hpj wrote (it had stopped working due to some internal changes) and integrated it with the gvfs backend for libgio. This means g_file_get_path() will now return a local fuse path even for non-local files. In practice this mean applications that do not access files via gio can still load and save files on e.g. remote shares like smb, ftp, sftp, etc.
I made a screencast to show this off. Check it out!