summaryrefslogtreecommitdiff
path: root/src/file-manager/fm-error-reporting.c
diff options
context:
space:
mode:
authorJohn Sullivan <sullivan@src.gnome.org>2001-01-16 00:07:47 +0000
committerJohn Sullivan <sullivan@src.gnome.org>2001-01-16 00:07:47 +0000
commit91093082def77dbc269fa8cd6e25f56a7cc83c42 (patch)
tree214896dcb53fa11a56ee2d40fdf4b3296d243c6e /src/file-manager/fm-error-reporting.c
parent2b21066674d3e27206aab880a5a06f7632a38b6f (diff)
downloadnautilus-91093082def77dbc269fa8cd6e25f56a7cc83c42.tar.gz
reviewed by: Darin Adler <darin@eazel.com>
Some work on bug 2146 (Properties window for desktop Trash icon should show Trash properties) * src/file-manager/fm-properties-window.c: (is_merged_trash_directory): New helper function, checks whether window is displaying special trash location. (should_show_custom_icon_buttons): New helper function, returns FALSE for special trash location since custom icons don't work with the trash (see bug 5642) (should_show_mime_type): New helper function, extracted for code clarity (returns FALSE for directories). (create_basic_page): Now takes only one parameter, gets file and notebook from details struct; uses should_show_mime_type and should_show_custom_icon_buttons. (create_emblems_page), (create_permissions_page): Now take only one parameter, get file and notebook from details struct. (should_show_emblems): New helper function, returns FALSE for special trash location since emblems don't work with the trash (see bug 5643) (should_show_permissions): New helper function, returns FALSE for special trash location since it's not really a file system object for which permissions make sense. (create_properties_window): Respect should_show_emblems and should_show_permissions. Eli ran into a case where the "can't set permissions" error message was the vague default case when the disk was locked. I added that case to the set of specifically handled cases. * src/file-manager/fm-error-reporting.c: (fm_report_error_renaming_file), (fm_report_error_setting_group), (fm_report_error_setting_owner), (fm_report_error_setting_permissions): Handle GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM cases.
Diffstat (limited to 'src/file-manager/fm-error-reporting.c')
-rw-r--r--src/file-manager/fm-error-reporting.c52
1 files changed, 40 insertions, 12 deletions
diff --git a/src/file-manager/fm-error-reporting.c b/src/file-manager/fm-error-reporting.c
index d545cadef..9c45159c2 100644
--- a/src/file-manager/fm-error-reporting.c
+++ b/src/file-manager/fm-error-reporting.c
@@ -76,6 +76,10 @@ fm_report_error_renaming_file (NautilusFile *file,
new_name);
}
break;
+ case GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM:
+ message = g_strdup_printf (_("Couldn't change the name of \"%s\" because it is on a read-only disk"),
+ original_name);
+ break;
default:
/* We should invent decent error messages for every case we actually experience. */
g_warning ("Hit unhandled case %d in fm_report_error_renaming_file, tell sullivan@eazel.com", error);
@@ -97,14 +101,20 @@ fm_report_error_setting_group (NautilusFile *file,
char *file_name;
char *message;
- switch (error) {
- case GNOME_VFS_OK:
+ if (error == GNOME_VFS_OK) {
return;
+ }
+
+ file_name = nautilus_file_get_name (file);
+
+ switch (error) {
case GNOME_VFS_ERROR_NOT_PERMITTED:
- file_name = nautilus_file_get_name (file);
message = g_strdup_printf (_("You do not have the permissions necessary to change the group of \"%s\"."),
file_name);
- g_free (file_name);
+ break;
+ case GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM:
+ message = g_strdup_printf (_("Couldn't change the group of \"%s\" because it is on a read-only disk"),
+ file_name);
break;
default:
/* We should invent decent error messages for every case we actually experience. */
@@ -115,6 +125,8 @@ fm_report_error_setting_group (NautilusFile *file,
}
nautilus_error_dialog (message, _("Error Setting Group"), NULL);
+
+ g_free (file_name);
g_free (message);
}
@@ -125,18 +137,26 @@ fm_report_error_setting_owner (NautilusFile *file,
char *file_name;
char *message;
- switch (error) {
- case GNOME_VFS_OK:
+ if (error == GNOME_VFS_OK) {
return;
+ }
+
+ file_name = nautilus_file_get_name (file);
+
+ switch (error) {
+ case GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM:
+ message = g_strdup_printf (_("Couldn't change the owner of \"%s\" because it is on a read-only disk"),
+ file_name);
+ break;
default:
/* We should invent decent error messages for every case we actually experience. */
g_warning ("Hit unhandled case %d in fm_report_error_setting_owner, tell sullivan@eazel.com", error);
- file_name = nautilus_file_get_name (file);
message = g_strdup_printf (_("Sorry, couldn't change the owner of \"%s\"."), file_name);
- g_free (file_name);
}
nautilus_error_dialog (message, _("Error Setting Owner"), NULL);
+
+ g_free (file_name);
g_free (message);
}
@@ -147,18 +167,26 @@ fm_report_error_setting_permissions (NautilusFile *file,
char *file_name;
char *message;
- switch (error) {
- case GNOME_VFS_OK:
+ if (error == GNOME_VFS_OK) {
return;
+ }
+
+ file_name = nautilus_file_get_name (file);
+
+ switch (error) {
+ case GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM:
+ message = g_strdup_printf (_("Couldn't change the permissions of \"%s\" because it is on a read-only disk"),
+ file_name);
+ break;
default:
/* We should invent decent error messages for every case we actually experience. */
g_warning ("Hit unhandled case %d in fm_report_error_setting_permissions, tell sullivan@eazel.com", error);
- file_name = nautilus_file_get_name (file);
message = g_strdup_printf (_("Sorry, couldn't change the permissions of \"%s\"."), file_name);
- g_free (file_name);
}
nautilus_error_dialog (message, _("Error Setting Permissions"), NULL);
+
+ g_free (file_name);
g_free (message);
}