summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoss Lagerwall <rosslagerwall@gmail.com>2015-07-26 22:24:18 +0100
committerRoss Lagerwall <rosslagerwall@gmail.com>2015-08-04 21:01:16 +0100
commitc40c301e4a7f23dfe91289e90d9fa031f09bbcab (patch)
treea4900a5e190a6361515e341b3ccc23e1bbdaf660
parentfc5f3be0a55f15d567e2e01f65585a3de5c40e74 (diff)
downloadgvfs-c40c301e4a7f23dfe91289e90d9fa031f09bbcab.tar.gz
Set filesystem::type for all backends
This attribute was being set inconsistently, and is used by the file chooser. https://bugzilla.gnome.org/show_bug.cgi?id=752834
-rw-r--r--daemon/gvfsbackendafpbrowse.c13
-rw-r--r--daemon/gvfsbackendarchive.c1
-rw-r--r--daemon/gvfsbackendburn.c13
-rw-r--r--daemon/gvfsbackendcomputer.c13
-rw-r--r--daemon/gvfsbackenddav.c1
-rw-r--r--daemon/gvfsbackenddnssd.c13
-rw-r--r--daemon/gvfsbackendftp.c13
-rw-r--r--daemon/gvfsbackendhttp.c13
-rw-r--r--daemon/gvfsbackendlocaltest.c2
-rw-r--r--daemon/gvfsbackendnetwork.c13
-rw-r--r--daemon/gvfsbackendsmbbrowse.c13
11 files changed, 108 insertions, 0 deletions
diff --git a/daemon/gvfsbackendafpbrowse.c b/daemon/gvfsbackendafpbrowse.c
index 86db10bb..d5ce1abc 100644
--- a/daemon/gvfsbackendafpbrowse.c
+++ b/daemon/gvfsbackendafpbrowse.c
@@ -546,6 +546,18 @@ g_vfs_backend_afp_browse_finalize (GObject *object)
G_OBJECT_CLASS (g_vfs_backend_afp_browse_parent_class)->finalize (object);
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "afp");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_afp_browse_class_init (GVfsBackendAfpBrowseClass *klass)
{
@@ -560,6 +572,7 @@ g_vfs_backend_afp_browse_class_init (GVfsBackendAfpBrowseClass *klass)
backend_class->try_query_info = try_query_info;
backend_class->try_enumerate = try_enumerate;
backend_class->try_mount_mountable = try_mount_mountable;
+ backend_class->try_query_fs_info = try_query_fs_info;
}
void
diff --git a/daemon/gvfsbackendarchive.c b/daemon/gvfsbackendarchive.c
index 1a41203a..7ed4c590 100644
--- a/daemon/gvfsbackendarchive.c
+++ b/daemon/gvfsbackendarchive.c
@@ -913,6 +913,7 @@ try_query_fs_info (GVfsBackend *backend,
{
GVfsBackendArchive *ba = G_VFS_BACKEND_ARCHIVE (backend);
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "archive");
g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW, G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL);
g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE, ba->size);
diff --git a/daemon/gvfsbackendburn.c b/daemon/gvfsbackendburn.c
index b22baa9d..928387c3 100644
--- a/daemon/gvfsbackendburn.c
+++ b/daemon/gvfsbackendburn.c
@@ -1022,6 +1022,18 @@ try_move (GVfsBackend *backend,
return TRUE;
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "burn");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_burn_class_init (GVfsBackendBurnClass *klass)
{
@@ -1033,6 +1045,7 @@ g_vfs_backend_burn_class_init (GVfsBackendBurnClass *klass)
backend_class->try_mount = try_mount;
backend_class->try_open_for_read = try_open_for_read;
backend_class->try_query_info = try_query_info;
+ backend_class->try_query_fs_info = try_query_fs_info;
backend_class->try_enumerate = try_enumerate;
backend_class->try_create_dir_monitor = try_create_dir_monitor;
backend_class->try_make_directory = try_make_directory;
diff --git a/daemon/gvfsbackendcomputer.c b/daemon/gvfsbackendcomputer.c
index a502093d..456bb157 100644
--- a/daemon/gvfsbackendcomputer.c
+++ b/daemon/gvfsbackendcomputer.c
@@ -1415,6 +1415,18 @@ try_poll_mountable (GVfsBackend *backend,
return TRUE;
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "computer");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_computer_class_init (GVfsBackendComputerClass *klass)
{
@@ -1426,6 +1438,7 @@ g_vfs_backend_computer_class_init (GVfsBackendComputerClass *klass)
backend_class->try_mount = try_mount;
backend_class->try_open_for_read = try_open_for_read;
backend_class->try_query_info = try_query_info;
+ backend_class->try_query_fs_info = try_query_fs_info;
backend_class->try_enumerate = try_enumerate;
backend_class->try_create_dir_monitor = try_create_dir_monitor;
backend_class->try_mount_mountable = try_mount_mountable;
diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c
index 2d83ca01..27166a24 100644
--- a/daemon/gvfsbackenddav.c
+++ b/daemon/gvfsbackenddav.c
@@ -3394,6 +3394,7 @@ g_vfs_backend_dav_class_init (GVfsBackendDavClass *klass)
backend_class->mount = do_mount;
backend_class->try_query_info = NULL;
backend_class->query_info = do_query_info;
+ backend_class->try_query_fs_info = NULL;
backend_class->query_fs_info = do_query_fs_info;
backend_class->enumerate = do_enumerate;
backend_class->try_open_for_read = try_open_for_read;
diff --git a/daemon/gvfsbackenddnssd.c b/daemon/gvfsbackenddnssd.c
index 366b299a..dc300541 100644
--- a/daemon/gvfsbackenddnssd.c
+++ b/daemon/gvfsbackenddnssd.c
@@ -806,6 +806,18 @@ g_vfs_backend_dns_sd_finalize (GObject *object)
(*G_OBJECT_CLASS (g_vfs_backend_dns_sd_parent_class)->finalize) (object);
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "dns-sd");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_dns_sd_class_init (GVfsBackendDnsSdClass *klass)
{
@@ -816,6 +828,7 @@ g_vfs_backend_dns_sd_class_init (GVfsBackendDnsSdClass *klass)
backend_class->try_mount = try_mount;
backend_class->try_query_info = try_query_info;
+ backend_class->try_query_fs_info = try_query_fs_info;
backend_class->try_enumerate = try_enumerate;
backend_class->try_create_dir_monitor = try_create_monitor;
backend_class->try_create_file_monitor = try_create_monitor;
diff --git a/daemon/gvfsbackendftp.c b/daemon/gvfsbackendftp.c
index 388c4c8a..426a69bc 100644
--- a/daemon/gvfsbackendftp.c
+++ b/daemon/gvfsbackendftp.c
@@ -1716,6 +1716,18 @@ out:
g_vfs_ftp_task_done (&task);
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "ftp");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_ftp_class_init (GVfsBackendFtpClass *klass)
{
@@ -1742,6 +1754,7 @@ g_vfs_backend_ftp_class_init (GVfsBackendFtpClass *klass)
backend_class->make_directory = do_make_directory;
backend_class->move = do_move;
backend_class->try_query_settable_attributes = try_query_settable_attributes;
+ backend_class->try_query_fs_info = try_query_fs_info;
backend_class->set_attribute = do_set_attribute;
backend_class->pull = do_pull;
}
diff --git a/daemon/gvfsbackendhttp.c b/daemon/gvfsbackendhttp.c
index 46f950a8..347fd0d9 100644
--- a/daemon/gvfsbackendhttp.c
+++ b/daemon/gvfsbackendhttp.c
@@ -674,6 +674,18 @@ try_query_info_on_read (GVfsBackend *backend,
return TRUE;
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "http");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
#define DEBUG_MAX_BODY_SIZE (100 * 1024 * 1024)
@@ -697,6 +709,7 @@ g_vfs_backend_http_class_init (GVfsBackendHttpClass *klass)
backend_class->try_close_read = try_close_read;
backend_class->try_query_info = try_query_info;
backend_class->try_query_info_on_read = try_query_info_on_read;
+ backend_class->try_query_fs_info = try_query_fs_info;
/* Initialize the SoupSession, common to all backend instances */
the_session = soup_session_new_with_options ("user-agent",
diff --git a/daemon/gvfsbackendlocaltest.c b/daemon/gvfsbackendlocaltest.c
index 24e4aed6..4b058a36 100644
--- a/daemon/gvfsbackendlocaltest.c
+++ b/daemon/gvfsbackendlocaltest.c
@@ -388,6 +388,8 @@ do_query_fs_info (GVfsBackend *backend,
g_print ("(II) try_query_fs_info (filename = %s) \n", filename);
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "localtest");
+
file = get_g_file_from_local (filename, G_VFS_JOB (job));
if (file) {
diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c
index bdb9cb9f..5e55b4bc 100644
--- a/daemon/gvfsbackendnetwork.c
+++ b/daemon/gvfsbackendnetwork.c
@@ -858,6 +858,18 @@ try_create_monitor (GVfsBackend *backend,
return TRUE;
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "network");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_network_init (GVfsBackendNetwork *network_backend)
{
@@ -963,6 +975,7 @@ g_vfs_backend_network_class_init (GVfsBackendNetworkClass *klass)
backend_class->try_mount = try_mount;
backend_class->try_query_info = try_query_info;
+ backend_class->try_query_fs_info = try_query_fs_info;
backend_class->try_enumerate = try_enumerate;
backend_class->try_create_dir_monitor = try_create_monitor;
backend_class->try_create_file_monitor = try_create_monitor;
diff --git a/daemon/gvfsbackendsmbbrowse.c b/daemon/gvfsbackendsmbbrowse.c
index 1abce2bd..19f12d21 100644
--- a/daemon/gvfsbackendsmbbrowse.c
+++ b/daemon/gvfsbackendsmbbrowse.c
@@ -1525,6 +1525,18 @@ try_enumerate (GVfsBackend *backend,
return TRUE;
}
+static gboolean
+try_query_fs_info (GVfsBackend *backend,
+ GVfsJobQueryFsInfo *job,
+ const char *filename,
+ GFileInfo *info,
+ GFileAttributeMatcher *matcher)
+{
+ g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "cifs");
+ g_vfs_job_succeeded (G_VFS_JOB (job));
+ return TRUE;
+}
+
static void
g_vfs_backend_smb_browse_class_init (GVfsBackendSmbBrowseClass *klass)
{
@@ -1544,6 +1556,7 @@ g_vfs_backend_smb_browse_class_init (GVfsBackendSmbBrowseClass *klass)
backend_class->try_close_read = try_close_read;
backend_class->query_info = do_query_info;
backend_class->try_query_info = try_query_info;
+ backend_class->try_query_fs_info = try_query_fs_info;
backend_class->enumerate = do_enumerate;
backend_class->try_enumerate = try_enumerate;
}