diff options
author | Chris Toshok <toshok@ximian.com> | 2001-10-30 11:45:46 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2001-10-30 11:45:46 +0800 |
commit | ac8cf2c210f655675c49f04fb7c3c679db4f1fae (patch) | |
tree | a4b490d7bd87b8a819c04c6a375381436fb138bc /addressbook/gui/contact-list-editor | |
parent | 2d8615531ca8bfabee8797331b00eb8d869a8e84 (diff) | |
download | gsoc2013-evolution-ac8cf2c210f655675c49f04fb7c3c679db4f1fae.tar.gz 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-list-editor')
-rw-r--r-- | addressbook/gui/contact-list-editor/e-contact-list-editor.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index e458aeee22..b1bd3e351c 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -28,6 +28,8 @@ #include <gal/widgets/e-unicode.h> #include "shell/evolution-shell-component-utils.h" +#include "addressbook/gui/widgets/e-addressbook-util.h" + #include "e-contact-editor.h" #include "e-contact-list-editor.h" #include "e-contact-list-model.h" @@ -358,11 +360,32 @@ save_card (EContactListEditor *cle, gboolean should_close) } } +static gboolean +prompt_to_save_changes (EContactListEditor *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; + } +} + static void file_close_cb (GtkWidget *widget, gpointer data) { EContactListEditor *cle = E_CONTACT_LIST_EDITOR (data); + if (!prompt_to_save_changes (cle)) + return; + close_dialog (cle); } @@ -676,6 +699,9 @@ app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data) ce = E_CONTACT_LIST_EDITOR (data); + if (!prompt_to_save_changes (ce)) + return TRUE; + close_dialog (ce); return TRUE; } |