aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog10
-rw-r--r--addressbook/gui/contact-editor/e-contact-save-as.c17
2 files changed, 26 insertions, 1 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 94604fb83e..910f5821f7 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,9 +1,19 @@
+2001-10-22 Christopher James Lahey <clahey@ximian.com>
+
+ * gui/contact-editor/e-contact-save-as.c (save_it): Put up an
+ error dialog if there's an error while saving. If the person hits
+ cancel on the "file exists" dialog, don't close the file selection
+ dialog. Fixes Ximian bug #7055.
+
2001-10-21 Christopher James Lahey <clahey@ximian.com>
* gui/widgets/e-addressbook-reflow-adapter.c
(model_and_selection_free): right_click_up here when we let go of
the popup.
+ * gui/widgets/e-minicard-view.c (e_minicard_view_selection_event):
+ right_click_up here.
+
2001-10-21 Christopher James Lahey <clahey@ximian.com>
* gui/component/select-names/e-select-names.c
diff --git a/addressbook/gui/contact-editor/e-contact-save-as.c b/addressbook/gui/contact-editor/e-contact-save-as.c
index 9ca7d844e8..ec174615e9 100644
--- a/addressbook/gui/contact-editor/e-contact-save-as.c
+++ b/addressbook/gui/contact-editor/e-contact-save-as.c
@@ -33,6 +33,8 @@
#include <libgnome/gnome-i18n.h>
#include <errno.h>
#include <string.h>
+#include <libgnomeui/gnome-messagebox.h>
+#include <libgnomeui/gnome-stock.h>
static int file_exists(GtkFileSelection *filesel, const char *filename);
@@ -58,8 +60,21 @@ save_it(GtkWidget *widget, SaveAsInfo *info)
e_write_file(filename, info->vcard, O_WRONLY | O_CREAT | O_TRUNC);
break;
case 1 : /* cancel */
- break;
+ return;
}
+ } else if (error != 0) {
+ GtkWidget *dialog;
+ char *str;
+
+ str = g_strdup_printf ("Error saving %s: %s", filename, strerror(errno));
+ dialog = gnome_message_box_new (str, GNOME_MESSAGE_BOX_ERROR, GNOME_STOCK_BUTTON_OK, NULL);
+ g_free (str);
+
+ gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (info->filesel));
+
+ gtk_widget_show (dialog);
+
+ return;
}
g_free (info->vcard);