diff --git a/ChangeLog b/ChangeLog index 341a92926e..88daee376f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-10-30 Michael Natterer + + * app/core/gimpdata.[ch] (gimp_data_delete_from_disk): don't + g_message() on error but return a GError. + + * app/widgets/gimpdatafactoryview.c: show the message here. + 2002-10-30 Michael Natterer * app/widgets/gimpdevices.c: don't #include "core/gimpbrush.h" diff --git a/app/core/gimpdata.c b/app/core/gimpdata.c index 6484fe510c..1e28bc0900 100644 --- a/app/core/gimpdata.c +++ b/app/core/gimpdata.c @@ -37,6 +37,8 @@ #include "gimpdata.h" #include "gimpmarshal.h" +#include "libgimp/gimpintl.h" + enum { @@ -243,18 +245,21 @@ gimp_data_real_dirty (GimpData *data) } gboolean -gimp_data_delete_from_disk (GimpData *data) +gimp_data_delete_from_disk (GimpData *data, + GError **error) { g_return_val_if_fail (GIMP_IS_DATA (data), FALSE); g_return_val_if_fail (data->filename != NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); if (data->internal) return TRUE; if (unlink (data->filename) == -1) { - g_message ("%s(): could not unlink() %s: %s", - G_GNUC_FUNCTION, data->filename, g_strerror (errno)); + g_set_error (error, 0, 0, + _("Could not delete '%s': %s"), + data->filename, g_strerror (errno)); return FALSE; } diff --git a/app/core/gimpdata.h b/app/core/gimpdata.h index 855b253bd7..33926fdc9f 100644 --- a/app/core/gimpdata.h +++ b/app/core/gimpdata.h @@ -58,20 +58,21 @@ struct _GimpDataClass GType gimp_data_get_type (void) G_GNUC_CONST; -gboolean gimp_data_save (GimpData *data); +gboolean gimp_data_save (GimpData *data); -void gimp_data_dirty (GimpData *data); -gboolean gimp_data_delete_from_disk (GimpData *data); +void gimp_data_dirty (GimpData *data); +gboolean gimp_data_delete_from_disk (GimpData *data, + GError **error); -const gchar * gimp_data_get_extension (GimpData *data); +const gchar * gimp_data_get_extension (GimpData *data); -void gimp_data_set_filename (GimpData *data, - const gchar *filename); -void gimp_data_create_filename (GimpData *data, - const gchar *filename, - const gchar *data_path); +void gimp_data_set_filename (GimpData *data, + const gchar *filename); +void gimp_data_create_filename (GimpData *data, + const gchar *filename, + const gchar *data_path); -GimpData * gimp_data_duplicate (GimpData *data); +GimpData * gimp_data_duplicate (GimpData *data); #endif /* __GIMP_DATA_H__ */ diff --git a/app/widgets/gimpdatafactoryview.c b/app/widgets/gimpdatafactoryview.c index 717dac034b..3ddda2a258 100644 --- a/app/widgets/gimpdatafactoryview.c +++ b/app/widgets/gimpdatafactoryview.c @@ -370,7 +370,15 @@ gimp_data_factory_view_delete_callback (GtkWidget *widget, GIMP_OBJECT (delete_data->data))) { if (delete_data->data->filename) - gimp_data_delete_from_disk (delete_data->data); + { + GError *error = NULL; + + if (! gimp_data_delete_from_disk (delete_data->data, &error)) + { + g_message (error->message); + g_clear_error (&error); + } + } gimp_container_remove (delete_data->factory->container, GIMP_OBJECT (delete_data->data));