/*--------------------------------------------------------------------------*/ static void get_share_info_for_file_info (NemoFileInfo *file, ShareInfo **share_info, gboolean *is_shareable) { char *uri; char *local_path = NULL; GFile *f; *share_info = NULL; *is_shareable = FALSE; uri = nemo_file_info_get_uri (file); f = nemo_file_info_get_location(file); if (!uri) goto out; #define NETWORK_SHARE_PREFIX "network:///share-" if (g_str_has_prefix (uri, NETWORK_SHARE_PREFIX)) { const char *share_name; share_name = uri + strlen (NETWORK_SHARE_PREFIX); /* FIXME: NULL GError */ if (!shares_get_share_info_for_share_name (share_name, share_info, NULL)) { *share_info = NULL; *is_shareable = TRUE; /* it *has* the prefix, anyway... we are just unsynchronized with what gnome-vfs thinks */ } else { *is_shareable = TRUE; } goto out; } if (!nemo_file_info_is_directory(file)) goto out; local_path = g_file_get_path(f); if (!local_path || !g_file_is_native(f)) goto out; /* FIXME: NULL GError */ if (!shares_get_share_info_for_path (local_path, share_info, NULL)) goto out; *is_shareable = TRUE; out: g_object_unref(f); g_free (uri); g_free (local_path); }
/*--------------------------------------------------------------------------*/ static gchar * get_fullpath_from_fileinfo(NemoFileInfo *fileinfo) { GFile *file; gchar *fullpath; g_assert (fileinfo != NULL); file = nemo_file_info_get_location(fileinfo); fullpath = g_file_get_path(file); g_assert (fullpath != NULL && g_file_is_native(file)); /* In the beginning we checked that this was a local URI */ g_object_unref(file); return(fullpath); }
static gboolean unsupported_scheme (NemoFileInfo *file) { gboolean result = FALSE; GFile *location; char *scheme; location = nemo_file_info_get_location (file); scheme = g_file_get_uri_scheme (location); if (scheme != NULL) { const char *unsupported[] = { "trash", "computer", NULL }; int i; for (i = 0; unsupported[i] != NULL; i++) if (strcmp (scheme, unsupported[i]) == 0) result = TRUE; } g_free (scheme); g_object_unref (location); return result; }