aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/widgets/e-addressbook-view.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2002-08-29 17:48:02 +0800
committerChris Toshok <toshok@src.gnome.org>2002-08-29 17:48:02 +0800
commit0ec1895bf3f7b64938df35de8266b6fc3d9f60d9 (patch)
tree638cc671c66fc792b4c60e1ea86af16b6b91e118 /addressbook/gui/widgets/e-addressbook-view.c
parent7f3d3493a3bfb3cec85609d6951565fead6796bc (diff)
downloadgsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.tar
gsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.tar.gz
gsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.tar.bz2
gsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.tar.lz
gsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.tar.xz
gsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.tar.zst
gsoc2013-evolution-0ec1895bf3f7b64938df35de8266b6fc3d9f60d9.zip
[ fixes #20347 ] hook up the backend_died signal. (backend_died): new
2002-08-29 Chris Toshok <toshok@ximian.com> [ fixes #20347 ] * gui/widgets/e-addressbook-view.c (e_addressbook_view_init): hook up the backend_died signal. (backend_died): new function, pop up an error dialog saying the backend died. * gui/widgets/e-addressbook-model.c (backend_died): new function, emit the backend_died signal. (e_addressbook_model_class_init): create the backend_died signal. (e_addressbook_model_init): init backend_died_id (e_addressbook_model_set_arg): disconnect the backend_died signal from the old book and hook it up to the new book. * gui/widgets/e-addressbook-model.h: add the backend_died signal. * backend/ebook/e-book.c (backend_died_cb): new function, emit the backend_died signal. (e_book_do_response_open): create the component listener and hook up the backend_died signal. (e_book_destroy): disconnect the component listener and unref it. * backend/ebook/e-book.h: add backend_died signal. svn path=/trunk/; revision=17918
Diffstat (limited to 'addressbook/gui/widgets/e-addressbook-view.c')
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index c8052b4216..f12a324953 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -83,6 +83,7 @@ static void search_result (GtkObject *object, EBookViewStatus status, EAddr
static void folder_bar_message (GtkObject *object, const gchar *status, EAddressbookView *eav);
static void stop_state_changed (GtkObject *object, EAddressbookView *eav);
static void writable_status (GtkObject *object, gboolean writable, EAddressbookView *eav);
+static void backend_died (GtkObject *object, EAddressbookView *eav);
static void command_state_change (EAddressbookView *eav);
static void alphabet_state_change (EAddressbookView *eav, gunichar letter);
@@ -252,6 +253,11 @@ e_addressbook_view_init (EAddressbookView *eav)
GTK_SIGNAL_FUNC (writable_status),
eav);
+ gtk_signal_connect (GTK_OBJECT(eav->model),
+ "backend_died",
+ GTK_SIGNAL_FUNC (backend_died),
+ eav);
+
eav->editable = FALSE;
eav->book = NULL;
eav->query = g_strdup (SHOW_ALL_SEARCH);
@@ -1361,6 +1367,17 @@ alphabet_state_change (EAddressbookView *eav, gunichar letter)
}
static void
+backend_died (GtkObject *object, EAddressbookView *eav)
+{
+ char *message = g_strdup_printf (_("The addressbook backend for\n%s\nhas crashed. "
+ "You will have to restart Evolution in order "
+ "to use it again"),
+ e_book_get_uri (eav->book));
+ gnome_error_dialog_parented (message, GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (eav))));
+ g_free (message);
+}
+
+static void
create_table_view (EAddressbookView *view)
{
ETableModel *adapter;