gtkfilesystem: Improve heuristics to detect remote filesystem

Use G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE to detect remote filesystems
instead of hardcoded list of filesystem types.

Bump required GLib version accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=767965
This commit is contained in:
Ondrej Holy 2016-06-22 14:04:00 +02:00
parent 9f5b9c0e07
commit 0c1cc9832f
2 changed files with 3 additions and 20 deletions

View File

@ -43,7 +43,7 @@ m4_define([gtk_binary_version], [3.0.0])
# required versions of other packages
m4_define([glib_required_major], [2])
m4_define([glib_required_minor], [49])
m4_define([glib_required_micro], [1])
m4_define([glib_required_micro], [3])
m4_define([glib_required_version],
[glib_required_major.glib_required_minor.glib_required_micro])
m4_define([glib_min_required_minor],

View File

@ -902,33 +902,16 @@ _gtk_file_has_native_path (GFile *file)
return has_native_path;
}
static const gchar * const remote_types[] = {
"afp",
"google-drive",
"sftp",
"webdav",
"ftp",
"nfs",
"cifs",
NULL
};
gboolean
_gtk_file_consider_as_remote (GFile *file)
{
GFileInfo *info;
gboolean is_remote;
info = g_file_query_filesystem_info (file, "filesystem::type", NULL, NULL);
info = g_file_query_filesystem_info (file, G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE, NULL, NULL);
if (info)
{
const gchar *type;
type = g_file_info_get_attribute_string (info, "filesystem::type");
if (type != NULL)
is_remote = g_strv_contains (remote_types, type);
else
is_remote = FALSE;
is_remote = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE);
g_object_unref (info);
}