aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/contact-editor/e-contact-editor.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2001-10-30 11:45:46 +0800
committerChris Toshok <toshok@src.gnome.org>2001-10-30 11:45:46 +0800
commitac8cf2c210f655675c49f04fb7c3c679db4f1fae (patch)
treea4b490d7bd87b8a819c04c6a375381436fb138bc /addressbook/gui/contact-editor/e-contact-editor.c
parent2d8615531ca8bfabee8797331b00eb8d869a8e84 (diff)
downloadgsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar
gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar.gz
gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar.bz2
gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar.lz
gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar.xz
gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar.zst
gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.zip
new function, a "Do you want to save changes?" dialog.
2001-10-29 Chris Toshok <toshok@ximian.com> * gui/widgets/e-addressbook-util.c (e_addressbook_prompt_save_dialog): new function, a "Do you want to save changes?" dialog. * gui/widgets/e-addressbook-util.h: add prototype for e_addressbook_prompt_save_dialog. * gui/contact-editor/e-contact-editor.c (prompt_to_save_changes): call e_addressbook_prompt_save_dialog and save the card if they select save. return TRUE if the dialog should be closed, FALSE otherwise. (file_close_cb): check prompt_to_save_changes before closing the dialog. (app_delete_event_cb): same. * gui/contact-list-editor/e-contact-list-editor.c (prompt_to_save_changes): call e_addressbook_prompt_save_dialog and save the card if they select save. return TRUE if the dialog should be closed, FALSE otherwise. (file_close_cb): check prompt_to_save_changes before closing the dialog. (app_delete_event_cb): same. svn path=/trunk/; revision=14414
Diffstat (limited to 'addressbook/gui/contact-editor/e-contact-editor.c')
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c
index 3ec4cfbe4d..25824206bb 100644
--- a/addressbook/gui/contact-editor/e-contact-editor.c
+++ b/addressbook/gui/contact-editor/e-contact-editor.c
@@ -27,6 +27,7 @@
#include <gtk/gtkcombo.h>
#include <gtk/gtktext.h>
#include <libgnomeui/gnome-popup-menu.h>
+#include <libgnomeui/gnome-stock.h>
#include <libgnome/gnome-i18n.h>
#include <bonobo/bonobo-ui-container.h>
@@ -42,6 +43,7 @@
#include "addressbook/printing/e-contact-print.h"
#include "addressbook/printing/e-contact-print-envelope.h"
+#include "addressbook/gui/widgets/e-addressbook-util.h"
#include "e-util/e-gui-utils.h"
#include "widgets/misc/e-dateedit.h"
#include "shell/evolution-shell-component-utils.h"
@@ -900,6 +902,24 @@ close_dialog (EContactEditor *ce)
}
}
+static gboolean
+prompt_to_save_changes (EContactEditor *editor)
+{
+ if (!editor->changed)
+ return TRUE;
+
+ switch (e_addressbook_prompt_save_dialog (GTK_WINDOW(editor->app))) {
+ case 0: /* Save */
+ save_card (editor, FALSE);
+ return TRUE;
+ case 1: /* Discard */
+ return TRUE;
+ case 2: /* Cancel */
+ default:
+ return FALSE;
+ }
+}
+
/* Menu callbacks */
/* File/Save callback */
@@ -919,6 +939,9 @@ file_close_cb (GtkWidget *widget, gpointer data)
EContactEditor *ce;
ce = E_CONTACT_EDITOR (data);
+ if (!prompt_to_save_changes (ce))
+ return;
+
close_dialog (ce);
}
@@ -1114,6 +1137,9 @@ app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
ce = E_CONTACT_EDITOR (data);
+ if (!prompt_to_save_changes (ce))
+ return TRUE;
+
close_dialog (ce);
return TRUE;
}