Allow resolving absolute paths even if there is no base_folder

This lets us do proper completion in GtkFileChooserEntry even when no base folder
has been set.  Completion for relative paths won't work, as usual, as expected.
This commit is contained in:
Federico Mena Quintero 2011-06-29 18:20:53 -05:00
parent 91b8043397
commit 3449a4891a
2 changed files with 15 additions and 3 deletions

View File

@ -1559,7 +1559,6 @@ refresh_current_folder_and_file_part (GtkFileChooserEntry *chooser_entry,
error = NULL;
if (!chooser_entry->file_system ||
!chooser_entry->base_folder ||
!_gtk_file_system_parse (chooser_entry->file_system,
chooser_entry->base_folder, text,
&folder_file, &file_part, &error))

View File

@ -720,9 +720,22 @@ _gtk_file_system_parse (GtkFileSystem *file_system,
if (str[0] == '~' || g_path_is_absolute (str) || is_uri)
file = g_file_parse_name (str);
else
file = g_file_resolve_relative_path (base_file, str);
{
if (base_file)
file = g_file_resolve_relative_path (base_file, str);
else
{
*folder = NULL;
*file_part = NULL;
g_set_error (error,
GTK_FILE_CHOOSER_ERROR,
GTK_FILE_CHOOSER_ERROR_BAD_FILENAME,
_("Invalid path"));
return FALSE;
}
}
if (g_file_equal (base_file, file))
if (base_file && g_file_equal (base_file, file))
{
/* this is when user types '.', could be the
* beginning of a hidden file, ./ or ../