[gvfs] Set filesystem::type for all backends



commit c40c301e4a7f23dfe91289e90d9fa031f09bbcab
Author: Ross Lagerwall <rosslagerwall gmail com>
Date:   Sun Jul 26 22:24:18 2015 +0100

    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

 daemon/gvfsbackendafpbrowse.c |   13 +++++++++++++
 daemon/gvfsbackendarchive.c   |    1 +
 daemon/gvfsbackendburn.c      |   13 +++++++++++++
 daemon/gvfsbackendcomputer.c  |   13 +++++++++++++
 daemon/gvfsbackenddav.c       |    1 +
 daemon/gvfsbackenddnssd.c     |   13 +++++++++++++
 daemon/gvfsbackendftp.c       |   13 +++++++++++++
 daemon/gvfsbackendhttp.c      |   13 +++++++++++++
 daemon/gvfsbackendlocaltest.c |    2 ++
 daemon/gvfsbackendnetwork.c   |   13 +++++++++++++
 daemon/gvfsbackendsmbbrowse.c |   13 +++++++++++++
 11 files changed, 108 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gvfsbackendafpbrowse.c b/daemon/gvfsbackendafpbrowse.c
index 86db10b..d5ce1ab 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 1a41203..7ed4c59 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 b22baa9..928387c 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 a502093..456bb15 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 2d83ca0..27166a2 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 366b299..dc30054 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 388c4c8..426a69b 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 46f950a..347fd0d 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 24e4aed..4b058a3 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 bdb9cb9..5e55b4b 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 1abce2b..19f12d2 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;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]