diff options
author | Veerapuram Varadhan <vvaradan@src.gnome.org> | 2005-07-11 21:34:53 +0800 |
---|---|---|
committer | Veerapuram Varadhan <vvaradan@src.gnome.org> | 2005-07-11 21:34:53 +0800 |
commit | 417c14c253d7aab254fb554ee78c9dc824fb8efa (patch) | |
tree | 5ae5be6dad00c4f0276e796a7b59a13067c05bfe /addressbook/gui/component/addressbook-view.c | |
parent | 619bc50ccd1d7c1d994abb70a7f0db413f3285e0 (diff) | |
download | gsoc2013-evolution-417c14c253d7aab254fb554ee78c9dc824fb8efa.tar.gz gsoc2013-evolution-417c14c253d7aab254fb554ee78c9dc824fb8efa.tar.zst gsoc2013-evolution-417c14c253d7aab254fb554ee78c9dc824fb8efa.zip |
// uris. Also, opens a contact in the editor if the contact-uid in the url
* Implementation to handle contacts:// uris.
* Also, opens a contact in the editor if the contact-uid in the url is valid.
svn path=/trunk/; revision=29719
Diffstat (limited to 'addressbook/gui/component/addressbook-view.c')
-rw-r--r-- | addressbook/gui/component/addressbook-view.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/addressbook/gui/component/addressbook-view.c b/addressbook/gui/component/addressbook-view.c index 87d25df125..78d44d83c9 100644 --- a/addressbook/gui/component/addressbook-view.c +++ b/addressbook/gui/component/addressbook-view.c @@ -1405,3 +1405,42 @@ addressbook_view_peek_folder_view (AddressbookView *view) return view->priv->folder_view_control; } + +void +addressbook_view_edit_contact (AddressbookView* view, + const char* source_uid, + const char* contact_uid) +{ + AddressbookViewPrivate *priv = view->priv; + + ESource* source = NULL; + EContact* contact = NULL; + EBook* book = NULL; + + if (!source_uid || !contact_uid) + return; + + source = e_source_list_peek_source_by_uid (priv->source_list, source_uid); + if (!source) + return; + + /* FIXME: Can I unref this book? */ + book = e_book_new (source, NULL); + if (!book) + return; + + if (!e_book_open (book, TRUE, NULL)) { + g_object_unref (book); + return; + } + + e_book_get_contact (book, contact_uid, &contact, NULL); + + if (!contact) { + g_object_unref (book); + return; + } + eab_show_contact_editor (book, contact, FALSE, FALSE); + g_object_unref (contact); + g_object_unref (book); +} |