Commit 9359ede2 authored by Matthias Clasen's avatar Matthias Clasen Committed by Matthias Clasen
Browse files

Don't construct errors from the GTK_FILE_SYSTEM_ERROR domain. Partial fix

2005-01-05  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilechooserdefault.c: Don't construct errors from
	the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911.
	(get_file_info, check_is_folder): Translate errors from
	the filesystem into the GTK_FILE_CHOOSER_ERROR domain. Rest
	of the fix for #162911, noticed by Murray Cumming.
parent 7794fa7f
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
* gtk/gtkfilechooserdefault.c: Don't construct errors from * gtk/gtkfilechooserdefault.c: Don't construct errors from
the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911. the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911.
(get_file_info, check_is_folder): Translate errors from
the filesystem into the GTK_FILE_CHOOSER_ERROR domain. Rest
of the fix for #162911, noticed by Murray Cumming.
Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com> Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com>
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
* gtk/gtkfilechooserdefault.c: Don't construct errors from * gtk/gtkfilechooserdefault.c: Don't construct errors from
the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911. the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911.
(get_file_info, check_is_folder): Translate errors from
the filesystem into the GTK_FILE_CHOOSER_ERROR domain. Rest
of the fix for #162911, noticed by Murray Cumming.
Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com> Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com>
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
* gtk/gtkfilechooserdefault.c: Don't construct errors from * gtk/gtkfilechooserdefault.c: Don't construct errors from
the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911. the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911.
(get_file_info, check_is_folder): Translate errors from
the filesystem into the GTK_FILE_CHOOSER_ERROR domain. Rest
of the fix for #162911, noticed by Murray Cumming.
Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com> Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com>
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
* gtk/gtkfilechooserdefault.c: Don't construct errors from * gtk/gtkfilechooserdefault.c: Don't construct errors from
the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911. the GTK_FILE_SYSTEM_ERROR domain. Partial fix for #162911.
(get_file_info, check_is_folder): Translate errors from
the filesystem into the GTK_FILE_CHOOSER_ERROR domain. Rest
of the fix for #162911, noticed by Murray Cumming.
Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com> Wed Jan 5 11:42:49 2005 Søren Sandmann <sandmann@redhat.com>
......
...@@ -1080,36 +1080,55 @@ shortcuts_find_current_folder (GtkFileChooserDefault *impl) ...@@ -1080,36 +1080,55 @@ shortcuts_find_current_folder (GtkFileChooserDefault *impl)
/* Convenience function to get the display name and icon info for a path */ /* Convenience function to get the display name and icon info for a path */
static GtkFileInfo * static GtkFileInfo *
get_file_info (GtkFileSystem *file_system, const GtkFilePath *path, gboolean name_only, GError **error) get_file_info (GtkFileSystem *file_system,
const GtkFilePath *path,
gboolean name_only,
GError **error)
{ {
GtkFilePath *parent_path; GtkFilePath *parent_path;
GtkFileFolder *parent_folder; GtkFileFolder *parent_folder;
GtkFileInfo *info; GtkFileInfo *info;
GError *tmp = NULL;
parent_path = NULL;
info = NULL; info = NULL;
if (!gtk_file_system_get_parent (file_system, path, &parent_path, error)) if (!gtk_file_system_get_parent (file_system, path, &parent_path, &tmp))
return NULL; goto out;
parent_folder = gtk_file_system_get_folder (file_system, parent_path ? parent_path : path, parent_folder = gtk_file_system_get_folder (file_system, parent_path ? parent_path : path,
GTK_FILE_INFO_DISPLAY_NAME GTK_FILE_INFO_DISPLAY_NAME
| (name_only ? 0 : GTK_FILE_INFO_IS_FOLDER), | (name_only ? 0 : GTK_FILE_INFO_IS_FOLDER),
error); &tmp);
if (!parent_folder) if (!parent_folder)
goto out; goto out;
info = gtk_file_folder_get_info (parent_folder, parent_path ? path : NULL, error); info = gtk_file_folder_get_info (parent_folder, parent_path ? path : NULL, &tmp);
g_object_unref (parent_folder); g_object_unref (parent_folder);
out: out:
if (parent_path)
gtk_file_path_free (parent_path);
if (tmp)
{
g_set_error (error,
GTK_FILE_CHOOSER_ERROR,
GTK_FILE_CHOOSER_ERROR_BAD_FILENAME,
_("Could not get information about '%s': %s"),
gtk_file_path_get_string (path),
tmp->message);
g_error_free (tmp);
}
gtk_file_path_free (parent_path);
return info; return info;
} }
/* Returns whether a path is a folder */ /* Returns whether a path is a folder */
static gboolean static gboolean
check_is_folder (GtkFileSystem *file_system, const GtkFilePath *path, GError **error) check_is_folder (GtkFileSystem *file_system,
const GtkFilePath *path,
GError **error)
{ {
GtkFileInfo *info; GtkFileInfo *info;
gboolean is_folder; gboolean is_folder;
...@@ -1129,7 +1148,7 @@ check_is_folder (GtkFileSystem *file_system, const GtkFilePath *path, GError **e ...@@ -1129,7 +1148,7 @@ check_is_folder (GtkFileSystem *file_system, const GtkFilePath *path, GError **e
if (!is_folder) if (!is_folder)
g_set_error (error, g_set_error (error,
GTK_FILE_CHOOSER_ERROR, GTK_FILE_CHOOSER_ERROR,
GTK_FILE_COOSER_ERROR_BAD_FILENAME, GTK_FILE_CHOOSER_ERROR_BAD_FILENAME,
"%s: %s", "%s: %s",
gtk_file_info_get_display_name (info), gtk_file_info_get_display_name (info),
g_strerror (ENOTDIR)); g_strerror (ENOTDIR));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment