| ThunarVFS | GIO | Solution |
| ThunarVfsDeepCountJob | – | Rewrite as ThunarDeepCountJob |
| ThunarVfsFileSize | guint64 | Replace |
| ThunarVfsFileTime | guint64 | Replace |
| ThunarVfsFileType | GFileType | Replace |
| ThunarVfsGroup | – | Rename to ThunarGroup |
| ThunarVfsInfo | GFileInfo | Replace |
| ThunarVfsJob | – | Rewrite as ThunarJob |
| ThunarVfsMimeApplication | GAppInfo | Replace |
| ThunarVfsMimeDatabase | GAppInfo | Replace |
| ThunarVfsMonitor | GFileMonitor | Replace |
| ThunarVfsPath | GFile | Replace |
| ThunarVfsSimpleJob | – | Rewrite as ThunarSimpleJob |
| ThunarVfsThumbFactory | – | Rewrite as ThunarThumbnailFactory |
| ThunarVfsTransferJob | – | Rewrite as ThunarTransferJob |
| ThunarVfsUser | – | Rename to ThunarUser |
| ThunarVfsUserManager | – | Rename to ThunarUserManager |
| ThunarVfsVolume | GVolume/GMount/GDrive | Replace |
| ThunarVfsVolumeManager | GVolumeMonitor | Replace |
ThunarFile *file = thunar_file_get_for_path ("/home/jannis/test.txt");
ThunarVfsFileSize size = thunar_file_get_size (file);
vs.
GFile *file = g_file_new_for_path ("/home/jannis/test.txt");
GFileInfo *info = g_file_query_info (file, "standard::*", G_FILE_QUERY_INFO_NONE, cancellable, &error);
guint64 size = g_file_info_get_size (info);
vs.
void
file_info_ready_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
GError *error = NULL;
GFileInfo *info;
info = g_file_query_info_finish (G_FILE (source_object), result, &error);
...
}
GFile *file = g_file_new_for_path ("/home/jannis/test.txt");
g_file_query_info_async (file, "standard::*", G_FILE_QUERY_INFO_NONE, 0, cancellable, file_info_ready_cb, user_data);
ThunarVfsMonitor *monitor = thunar_vfs_monitor_get_default (); ThunarVfsMonitorHandle *handle = thunar_vfs_monitor_add_file (monitor, path, callback, user_data);
vs.
GFileMonitor *monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, cancellable, &error);
ThunarVFS has a job framework based on the ThunarVfsJob base class. It has implementations for
tasks like
GIO only has per-file functions like g_file_copy_async() which don't work recursively. As
a consequence, the job framework will have to be moved into Thunar. This will most likely
require all jobs to be rewritten based on GIO. It's very likely that the job framework has
to be redesigned beforehand, due to the asynchronous APIs in GIO.
With ThunarVfsThumbFactory, ThunarVFS has built-in support for generating file thumbnails
using thumbnailers like those provided with the thunar-thumbnailers package. All GIO does
is looking in $HOME/.thumbnails/ for available thumbnails. It has no support for generating
them.
We'll have to move ThunarVfsThumbFactory and related code into Thunar or, even better,
into exo.