From 24bf0218e8f93e904e0f8d0285806fc1506cbbb3 Mon Sep 17 00:00:00 2001 From: Devashish Sharma Date: Thu, 23 Feb 2006 04:52:22 +0000 Subject: New->Contact should create contact on selected addressbook. svn path=/trunk/; revision=31566 --- addressbook/ChangeLog | 6 ++++++ addressbook/gui/component/addressbook-component.c | 26 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 09231be280..840fe2c101 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,9 @@ +2006-02-23 Devashish Sharma + + * gui/component/addressbook-component.c (impl_requestCreateItem) : + New Contact should create contact on selected Addressbook. + Fixes Bug # 326788 and 326721. + 2006-02-22 Simon Zheng Fix for 331993. diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c index 476220afed..ad99d22fc9 100644 --- a/addressbook/gui/component/addressbook-component.c +++ b/addressbook/gui/component/addressbook-component.c @@ -283,6 +283,9 @@ impl_requestCreateItem (PortableServer_Servant servant, CORBA_Environment *ev) { EBook *book; + GConfClient *gconf_client; + ESourceList *source_list; + char *uid; if (!item_type_name || (strcmp (item_type_name, "address_book") && @@ -297,7 +300,28 @@ impl_requestCreateItem (PortableServer_Servant servant, return; } - book = e_book_new_default_addressbook (NULL); + gconf_client = gconf_client_get_default(); + uid = gconf_client_get_string (gconf_client, "/apps/evolution/addressbook/display/primary_addressbook", + NULL); + g_object_unref (gconf_client); + if (!e_book_get_addressbooks (&source_list, NULL)) { + g_warning ("Could not get addressbook source list from GConf!"); + return; + } + if (uid) { + ESource *source = e_source_list_peek_source_by_uid(source_list, uid); + if (source) { + book = e_book_new (source, NULL); + } + else { + book = e_book_new_default_addressbook (NULL); + } + g_free (uid); + } + else { + book = e_book_new_default_addressbook (NULL); + } + e_book_async_open (book, FALSE, book_loaded_cb, g_strdup (item_type_name)); } -- cgit v1.2.3