Skip to content

Commit

Permalink
gtkfilesystem: Improve heuristics to detect remote filesystem
Browse files Browse the repository at this point in the history
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
  • Loading branch information
ondrejholy committed Jun 28, 2016
1 parent 9f5b9c0 commit 0c1cc98
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 20 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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],
Expand Down
21 changes: 2 additions & 19 deletions gtk/gtkfilesystem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit 0c1cc98

Please sign in to comment.