aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook/e-book-view.c')
-rw-r--r--addressbook/backend/ebook/e-book-view.c101
1 files changed, 47 insertions, 54 deletions
diff --git a/addressbook/backend/ebook/e-book-view.c b/addressbook/backend/ebook/e-book-view.c
index e1f4b1623c..e8468e35de 100644
--- a/addressbook/backend/ebook/e-book-view.c
+++ b/addressbook/backend/ebook/e-book-view.c
@@ -11,7 +11,6 @@
#include <config.h>
#include "addressbook.h"
-#include "e-card-cursor.h"
#include "e-book-view-listener.h"
#include "e-book-view.h"
#include "e-book.h"
@@ -26,13 +25,13 @@ struct _EBookViewPrivate {
EBookViewListener *listener;
- int responses_queued_id;
+ int response_id;
};
enum {
- CARD_CHANGED,
- CARD_REMOVED,
- CARD_ADDED,
+ CONTACTS_CHANGED,
+ CONTACTS_REMOVED,
+ CONTACTS_ADDED,
SEQUENCE_COMPLETE,
STATUS_MESSAGE,
LAST_SIGNAL
@@ -41,47 +40,32 @@ enum {
static guint e_book_view_signals [LAST_SIGNAL];
static void
-add_book_iterator (gpointer data, gpointer closure)
-{
- ECard *card = E_CARD (data);
- EBook *book = E_BOOK (closure);
-
- e_card_set_book (card, book);
-}
-
-static void
e_book_view_do_added_event (EBookView *book_view,
EBookViewListenerResponse *resp)
{
- if (book_view->priv->book)
- g_list_foreach (resp->cards, add_book_iterator, book_view->priv->book);
-
- g_signal_emit (book_view, e_book_view_signals [CARD_ADDED], 0,
- resp->cards);
+ g_signal_emit (book_view, e_book_view_signals [CONTACTS_ADDED], 0,
+ resp->contacts);
- g_list_foreach (resp->cards, (GFunc) g_object_unref, NULL);
- g_list_free (resp->cards);
+ g_list_foreach (resp->contacts, (GFunc) g_object_unref, NULL);
+ g_list_free (resp->contacts);
}
static void
e_book_view_do_modified_event (EBookView *book_view,
EBookViewListenerResponse *resp)
{
- if (book_view->priv->book)
- g_list_foreach (resp->cards, add_book_iterator, book_view->priv->book);
+ g_signal_emit (book_view, e_book_view_signals [CONTACTS_CHANGED], 0,
+ resp->contacts);
- g_signal_emit (book_view, e_book_view_signals [CARD_CHANGED], 0,
- resp->cards);
-
- g_list_foreach (resp->cards, (GFunc) g_object_unref, NULL);
- g_list_free (resp->cards);
+ g_list_foreach (resp->contacts, (GFunc) g_object_unref, NULL);
+ g_list_free (resp->contacts);
}
static void
e_book_view_do_removed_event (EBookView *book_view,
EBookViewListenerResponse *resp)
{
- g_signal_emit (book_view, e_book_view_signals [CARD_REMOVED], 0,
+ g_signal_emit (book_view, e_book_view_signals [CONTACTS_REMOVED], 0,
resp->ids);
g_list_foreach (resp->ids, (GFunc) g_free, NULL);
@@ -106,27 +90,20 @@ e_book_view_do_status_message_event (EBookView *book_view,
}
-/*
- * Reading notices out of the EBookViewListener's queue.
- */
static void
-e_book_view_check_listener_queue (EBookViewListener *listener, EBookView *book_view)
+e_book_view_handle_response (EBookViewListener *listener, EBookViewListenerResponse *resp, EBookView *book_view)
{
- EBookViewListenerResponse *resp;
-
- resp = e_book_view_listener_pop_response (listener);
-
if (resp == NULL)
return;
switch (resp->op) {
- case CardAddedEvent:
+ case ContactsAddedEvent:
e_book_view_do_added_event (book_view, resp);
break;
- case CardModifiedEvent:
+ case ContactsModifiedEvent:
e_book_view_do_modified_event (book_view, resp);
break;
- case CardsRemovedEvent:
+ case ContactsRemovedEvent:
e_book_view_do_removed_event (book_view, resp);
break;
case SequenceCompleteEvent:
@@ -171,8 +148,8 @@ e_book_view_construct (EBookView *book_view, GNOME_Evolution_Addressbook_BookVie
* Create our local BookListener interface.
*/
book_view->priv->listener = listener;
- book_view->priv->responses_queued_id = g_signal_connect (book_view->priv->listener, "responses_queued",
- G_CALLBACK (e_book_view_check_listener_queue), book_view);
+ book_view->priv->response_id = g_signal_connect (book_view->priv->listener, "response",
+ G_CALLBACK (e_book_view_handle_response), book_view);
bonobo_object_ref(BONOBO_OBJECT(book_view->priv->listener));
@@ -209,6 +186,22 @@ e_book_view_set_book (EBookView *book_view, EBook *book)
}
void
+e_book_view_start (EBookView *book_view)
+{
+ CORBA_Environment ev;
+
+ g_return_if_fail (book_view && E_IS_BOOK_VIEW (book_view));
+
+ CORBA_exception_init (&ev);
+
+ GNOME_Evolution_Addressbook_BookView_start (book_view->priv->corba_book_view, &ev);
+
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_warning ("corba exception._major = %d\n", ev._major);
+ }
+}
+
+void
e_book_view_stop (EBookView *book_view)
{
g_return_if_fail (book_view && E_IS_BOOK_VIEW (book_view));
@@ -223,7 +216,7 @@ e_book_view_init (EBookView *book_view)
book_view->priv->book = NULL;
book_view->priv->corba_book_view = CORBA_OBJECT_NIL;
book_view->priv->listener = NULL;
- book_view->priv->responses_queued_id = 0;
+ book_view->priv->response_id = 0;
}
static void
@@ -250,9 +243,9 @@ e_book_view_dispose (GObject *object)
}
if (book_view->priv->listener) {
- if (book_view->priv->responses_queued_id)
+ if (book_view->priv->response_id)
g_signal_handler_disconnect(book_view->priv->listener,
- book_view->priv->responses_queued_id);
+ book_view->priv->response_id);
e_book_view_listener_stop (book_view->priv->listener);
bonobo_object_unref (BONOBO_OBJECT(book_view->priv->listener));
}
@@ -271,31 +264,31 @@ e_book_view_class_init (EBookViewClass *klass)
parent_class = g_type_class_ref (G_TYPE_OBJECT);
- e_book_view_signals [CARD_CHANGED] =
- g_signal_new ("card_changed",
+ e_book_view_signals [CONTACTS_CHANGED] =
+ g_signal_new ("contacts_changed",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EBookViewClass, card_changed),
+ G_STRUCT_OFFSET (EBookViewClass, contacts_changed),
NULL, NULL,
e_book_marshal_NONE__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
- e_book_view_signals [CARD_ADDED] =
- g_signal_new ("card_added",
+ e_book_view_signals [CONTACTS_ADDED] =
+ g_signal_new ("contacts_added",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EBookViewClass, card_added),
+ G_STRUCT_OFFSET (EBookViewClass, contacts_added),
NULL, NULL,
e_book_marshal_NONE__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
- e_book_view_signals [CARD_REMOVED] =
- g_signal_new ("card_removed",
+ e_book_view_signals [CONTACTS_REMOVED] =
+ g_signal_new ("contacts_removed",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EBookViewClass, card_removed),
+ G_STRUCT_OFFSET (EBookViewClass, contacts_removed),
NULL, NULL,
e_book_marshal_NONE__POINTER,
G_TYPE_NONE, 1,