diff options
Diffstat (limited to 'extra/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch')
-rw-r--r-- | extra/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch | 386 |
1 files changed, 386 insertions, 0 deletions
diff --git a/extra/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch b/extra/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch new file mode 100644 index 000000000..2a36de13a --- /dev/null +++ b/extra/gnome-phone-manager/gnome-phone-manager-0.68-eds.patch @@ -0,0 +1,386 @@ +diff --git a/cut-n-paste/e-contact-entry/e-contact-entry.c b/cut-n-paste/e-contact-entry/e-contact-entry.c +index dc8e2e3..d95e5b9 100644 +--- a/cut-n-paste/e-contact-entry/e-contact-entry.c ++++ b/cut-n-paste/e-contact-entry/e-contact-entry.c +@@ -38,11 +38,6 @@ + #include <glib.h> + #include <glib/gi18n.h> + +-#include <libedataserver/e-source.h> +-#include <libebook/e-book.h> +-#include <libebook/e-book-view.h> +-#include <libebook/e-contact.h> +- + #include "e-contact-entry.h" + #include "econtactentry-marshal.h" + +@@ -59,7 +54,7 @@ static int signals[LAST_SIGNAL] = { 0 }; + /* Properties */ + enum { + PROP_0, /* TODO: why? */ +- PROP_SOURCE_LIST, ++ PROP_REGISTRY, + PROP_COMPLETE_LENGTH, + }; + +@@ -70,7 +65,7 @@ enum { + struct EContactEntryPriv { + GtkEntryCompletion *completion; + GtkListStore *store; +- ESourceList *source_list; ++ ESourceRegistry *registry; + /* A list of EntryLookup structs we are searching */ + GList *lookup_entries; + /* Number of characters to start searching at */ +@@ -227,7 +222,7 @@ e_contact_entry_display_func (EContact *contact) + emails = e_contact_get (contact, E_CONTACT_EMAIL); + for (l = emails; l != NULL; l = l->next) { + item = g_new0 (EContactEntyItem, 1); +- item->identifier = item->identifier = g_strdup (l->data); ++ item->identifier = g_strdup (l->data); + item->display_string = g_strdup_printf ("%s <%s>", (char*)e_contact_get_const (contact, E_CONTACT_NAME_OR_ORG), item->identifier); + + items = g_list_prepend (items, item); +@@ -276,22 +271,13 @@ view_contacts_added_cb (EBook *book, GList *contacts, gpointer user_data) + return; + + photo = e_contact_get (contact, E_CONTACT_PHOTO); +-#ifndef HAVE_ECONTACTPHOTOTYPE +- if (photo) { +-#else + if (photo && photo->type == E_CONTACT_PHOTO_TYPE_INLINED) { +-#endif + GdkPixbufLoader *loader; + + loader = gdk_pixbuf_loader_new (); + +-#ifndef HAVE_ECONTACTPHOTOTYPE +- if (gdk_pixbuf_loader_write (loader, (guchar *)photo->data, +- photo->length, NULL)) +-#else + if (gdk_pixbuf_loader_write (loader, (guchar *)photo->data.inlined.data, + photo->data.inlined.length, NULL)) +-#endif + pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); + + if (pixbuf) { +@@ -339,16 +325,15 @@ view_contacts_added_cb (EBook *book, GList *contacts, gpointer user_data) + * The query on the EBookView has completed. + */ + static void +-view_completed_cb (EBookView *book_view, EBookViewStatus status, gpointer user_data) ++view_completed_cb (EBookView *book_view, EBookViewStatus status, const gchar *message, gpointer user_data) + { + EntryLookup *lookup; + g_return_if_fail (user_data != NULL); +- /* TODO: handle status != OK */ +- g_return_if_fail (status == E_BOOK_ERROR_OK); + g_return_if_fail (book_view != NULL); + + lookup = (EntryLookup*)user_data; + g_object_unref (lookup->bookview); ++ lookup->bookview = NULL; + } + + /** +@@ -373,8 +358,8 @@ bookview_cb (EBook *book, EBookStatus status, EBookView *book_view, gpointer clo + lookup->bookview = book_view; + g_object_add_weak_pointer ((GObject*)book_view, (gpointer*)&lookup->bookview); + +- g_signal_connect (book_view, "contacts_added", (GCallback)view_contacts_added_cb, lookup); +- g_signal_connect (book_view, "sequence_complete", (GCallback)view_completed_cb, lookup); ++ g_signal_connect (book_view, "contacts-added", (GCallback)view_contacts_added_cb, lookup); ++ g_signal_connect (book_view, "view_complete", (GCallback)view_completed_cb, lookup); + + e_book_view_start (book_view); + } +@@ -396,6 +381,7 @@ entry_changed_cb (GtkEditable *editable, gpointer user_data) + if (lookup->bookview) { + e_book_view_stop (lookup->bookview); + g_object_unref (lookup->bookview); ++ lookup->bookview = NULL; + } + } + +@@ -410,7 +396,7 @@ entry_changed_cb (GtkEditable *editable, gpointer user_data) + if (!lookup->open) + continue; + +- if (e_book_async_get_book_view (lookup->book, query, NULL, 11, (EBookBookViewCallback)bookview_cb, lookup) != 0) { ++ if (e_book_async_get_book_view (lookup->book, query, NULL, MAX_ENTRIES, (EBookBookViewCallback)bookview_cb, lookup) == FALSE) { + g_signal_emit (entry, signals[ERROR], 0, _("Cannot create searchable view.")); + } + } +@@ -458,11 +444,12 @@ book_opened_cb (EBook *book, EBookStatus status, gpointer data) + */ + + void +-e_contact_entry_set_source_list (EContactEntry *entry, +- ESourceList *source_list) ++e_contact_entry_set_registry (EContactEntry *entry, ++ ESourceRegistry *registry) + { ++ GList *list, *link; ++ const gchar *extension_name; + GError *error = NULL; +- GSList *list, *l; + + g_return_if_fail (E_IS_CONTACT_ENTRY (entry)); + +@@ -471,58 +458,48 @@ e_contact_entry_set_source_list (EContactEntry *entry, + g_list_foreach (entry->priv->lookup_entries, (GFunc)lookup_entry_free, NULL); + g_list_free (entry->priv->lookup_entries); + } +- if (entry->priv->source_list) { +- g_object_unref (entry->priv->source_list); ++ if (entry->priv->registry) { ++ g_object_unref (entry->priv->registry); + } + + /* If we have no new sources, disable and return here */ +- if (source_list == NULL) { ++ if (registry == NULL) { + g_signal_emit (entry, signals[STATE_CHANGE], 0, FALSE); +- entry->priv->source_list = NULL; ++ entry->priv->registry = NULL; + entry->priv->lookup_entries = NULL; + return; + } + +- entry->priv->source_list = source_list; +- /* So that the list isn't going away underneath us */ +- g_object_ref (entry->priv->source_list); ++ entry->priv->registry = registry; ++ /* So that the registry isn't going away underneath us */ ++ g_object_ref (entry->priv->registry); + +- /* That gets us a list of ESourceGroup */ +- list = e_source_list_peek_groups (source_list); + entry->priv->lookup_entries = NULL; + +- for (l = list; l != NULL; l = l->next) { +- ESourceGroup *group = l->data; +- GSList *sources = NULL, *m; +- /* That should give us a list of ESource */ +- sources = e_source_group_peek_sources (group); +- for (m = sources; m != NULL; m = m->next) { +- ESource *source = m->data; +- ESource *s = e_source_copy (source); +- EntryLookup *lookup; +- char *uri; ++ extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK; ++ list = e_source_registry_list_sources (registry, extension_name); + +- uri = g_strdup_printf("%s/%s", e_source_group_peek_base_uri (group), e_source_peek_relative_uri (source)); +- e_source_set_absolute_uri (s, uri); +- g_free (uri); ++ for (link = list; link != NULL; link = g_list_next (link)) { ++ ESource *source = E_SOURCE (link->data); ++ EntryLookup *lookup; + +- /* Now add those to the lookup entries list */ +- lookup = g_new0 (EntryLookup, 1); +- lookup->entry = entry; +- lookup->status = E_BOOK_ERROR_OK; +- lookup->open = FALSE; ++ /* Now add those to the lookup entries list */ ++ lookup = g_new0 (EntryLookup, 1); ++ lookup->entry = entry; ++ lookup->status = E_BOOK_ERROR_OK; ++ lookup->open = FALSE; + +- if ((lookup->book = e_book_new (s, &error)) == NULL) { +- /* TODO handle this better, fire the error signal I guess */ ++ if ((lookup->book = e_book_new (source, &error)) == NULL) { ++ /* TODO handle this better, fire the error signal I guess */ ++ if (error) { + g_warning ("%s", error->message); +- g_error_free (error); +- g_free (lookup); +- } else { +- entry->priv->lookup_entries = g_list_append (entry->priv->lookup_entries, lookup); +- e_book_async_open(lookup->book, TRUE, (EBookCallback)book_opened_cb, lookup); ++ g_error_free (error); ++ error = NULL; + } +- +- g_object_unref (s); ++ g_free (lookup); ++ } else { ++ entry->priv->lookup_entries = g_list_append (entry->priv->lookup_entries, lookup); ++ e_book_async_open(lookup->book, TRUE, (EBookCallback)book_opened_cb, lookup); + } + } + +@@ -530,12 +507,12 @@ e_contact_entry_set_source_list (EContactEntry *entry, + g_signal_emit (entry, signals[STATE_CHANGE], 0, FALSE); + } + +-ESourceList * +-e_contact_entry_get_source_list (EContactEntry *entry) ++ESourceRegistry * ++e_contact_entry_get_registry (EContactEntry *entry) + { + g_return_val_if_fail (E_IS_CONTACT_ENTRY (entry), NULL); + +- return entry->priv->source_list; ++ return entry->priv->registry; + } + + void +@@ -601,8 +578,8 @@ e_contact_entry_set_property (GObject *object, guint property_id, const GValue * + entry = E_CONTACT_ENTRY (object); + + switch (property_id) { +- case PROP_SOURCE_LIST: +- e_contact_entry_set_source_list (entry, g_value_get_object (value)); ++ case PROP_REGISTRY: ++ e_contact_entry_set_registry (entry, g_value_get_object (value)); + break; + case PROP_COMPLETE_LENGTH: + e_contact_entry_set_complete_length (entry, g_value_get_int (value)); +@@ -620,8 +597,8 @@ e_contact_entry_get_property (GObject *object, guint property_id, GValue *value, + entry = E_CONTACT_ENTRY (object); + + switch (property_id) { +- case PROP_SOURCE_LIST: +- g_value_set_object (value, e_contact_entry_get_source_list (entry)); ++ case PROP_REGISTRY: ++ g_value_set_object (value, e_contact_entry_get_registry (entry)); + break; + case PROP_COMPLETE_LENGTH: + g_value_set_int (value, e_contact_entry_get_complete_length (entry)); +@@ -644,7 +621,7 @@ e_contact_entry_finalize (GObject *object) + g_list_free (entry->priv->lookup_entries); + g_object_unref (entry->priv->completion); + g_object_unref (entry->priv->store); +- g_object_unref (entry->priv->source_list); ++ g_object_unref (entry->priv->registry); + + if (entry->priv->display_destroy) { + entry->priv->display_destroy (entry->priv->display_func); +@@ -657,7 +634,7 @@ e_contact_entry_finalize (GObject *object) + static void + reset_search_fields (EContactEntry *entry) + { +- EContactField fields[] = { E_CONTACT_FULL_NAME, E_CONTACT_EMAIL, E_CONTACT_NICKNAME, E_CONTACT_ORG, 0 }; ++ EContactField fields[] = { E_CONTACT_FULL_NAME, E_CONTACT_EMAIL, E_CONTACT_NICKNAME, 0 }; + + g_free (entry->priv->search_fields); + entry->priv->search_fields = g_new0 (EContactField, G_N_ELEMENTS (fields)); +@@ -716,9 +693,9 @@ e_contact_entry_class_init (EContactEntryClass *klass) + object_class->finalize = e_contact_entry_finalize; + + /* Properties */ +- g_object_class_install_property (object_class, PROP_SOURCE_LIST, +- g_param_spec_object ("source-list", "Source List", "The source list to search for contacts.", +- E_TYPE_SOURCE_LIST, G_PARAM_READWRITE)); ++ g_object_class_install_property (object_class, PROP_REGISTRY, ++ g_param_spec_object ("registry", "Registry", "Data source registry.", ++ E_TYPE_SOURCE_REGISTRY, G_PARAM_READWRITE)); + + g_object_class_install_property (object_class, PROP_COMPLETE_LENGTH, + g_param_spec_int ("complete-length", "Complete length", "Number of characters to start a search on.", +@@ -771,6 +748,7 @@ lookup_entry_free (EntryLookup *lookup) + if (lookup->bookview) { + g_warning("EBookView still around"); + g_object_unref (lookup->bookview); ++ lookup->bookview = NULL; + } + if (lookup->book) { + g_object_unref (lookup->book); +diff --git a/cut-n-paste/e-contact-entry/e-contact-entry.h b/cut-n-paste/e-contact-entry/e-contact-entry.h +index bf6b39b..6fedef7 100644 +--- a/cut-n-paste/e-contact-entry/e-contact-entry.h ++++ b/cut-n-paste/e-contact-entry/e-contact-entry.h +@@ -23,10 +23,8 @@ + #ifndef CONTACT_ENTRY_H + #define CONTACT_ENTRY_H + +-#include <libedataserver/e-source-group.h> +-#include <libedataserver/e-source-list.h> +-#include <libebook/e-contact.h> + #include <gtk/gtk.h> ++#include <libebook/libebook.h> + + G_BEGIN_DECLS + +@@ -71,8 +69,8 @@ GType e_contact_entry_get_type (void); + + GtkWidget *e_contact_entry_new (void); + +-void e_contact_entry_set_source_list (EContactEntry *entry, ESourceList *list); +-ESourceList *e_contact_entry_get_source_list (EContactEntry *entry); ++void e_contact_entry_set_registry (EContactEntry *entry, ESourceRegistry *registry); ++ESourceRegistry *e_contact_entry_get_registry (EContactEntry *entry); + + void e_contact_entry_set_complete_length(EContactEntry *entry, int length); + int e_contact_entry_get_complete_length(EContactEntry *entry); +diff --git a/libgsm/phonemgr-utils.c b/libgsm/phonemgr-utils.c +index 4e62e10..baef34f 100644 +--- a/libgsm/phonemgr-utils.c ++++ b/libgsm/phonemgr-utils.c +@@ -27,7 +27,7 @@ + #include <glib.h> + #include <glib/gstdio.h> + #include <glib-object.h> +-#include <libebook/e-contact.h> ++#include <libebook/libebook.h> + #include <gnokii.h> + + #include <bluetooth/bluetooth.h> +diff --git a/src/e-phone-entry.c b/src/e-phone-entry.c +index 5d25622..38f4c2f 100644 +--- a/src/e-phone-entry.c ++++ b/src/e-phone-entry.c +@@ -31,8 +31,7 @@ + + #include <gtk/gtk.h> + #include <string.h> +-#include <libedataserver/e-source-list.h> +-#include <libedataserverui/e-client-utils.h> ++#include <libedataserverui/libedataserverui.h> + #include "e-phone-entry.h" + + #define CONTACT_FORMAT "%s (%s)" +@@ -181,25 +180,25 @@ e_phone_entry_finalize (GObject *object) + } + + static void +-add_sources (EContactEntry *entry) +-{ +- ESourceList *source_list; +- +- if (e_client_utils_get_sources (&source_list, +- E_CLIENT_SOURCE_TYPE_CONTACTS, +- NULL)) { +- e_contact_entry_set_source_list (E_CONTACT_ENTRY (entry), +- source_list); +- g_object_unref (source_list); +- } +-} +- +-static void + e_phone_entry_init (EPhoneEntry *entry) + { + EContactField fields[] = { E_CONTACT_FULL_NAME, E_CONTACT_NICKNAME, E_CONTACT_ORG, E_CONTACT_PHONE_MOBILE, 0 }; ++ ESourceRegistry *registry; ++ GError *error = NULL; ++ ++ /* XXX This call blocks while a D-Bus connection is made, possibly ++ * requiring activation. Might be better to create the registry ++ * in main(), pass it to ui_init(), and have e_phone_entry_new() ++ * take it as an argument. Calling this from main() means if it ++ * fails you can abort cleanly with a console error message. */ ++ registry = e_source_registry_new_sync (NULL, &error); ++ if (registry == NULL) { ++ g_error ("%s: %s", G_STRFUNC, error->message); ++ g_assert_not_reached (); ++ } ++ e_contact_entry_set_registry (E_CONTACT_ENTRY (entry), registry); ++ g_object_unref (registry); + +- add_sources (E_CONTACT_ENTRY (entry)); + e_contact_entry_set_search_fields (E_CONTACT_ENTRY (entry), (const EContactField *)fields); + e_contact_entry_set_display_func (E_CONTACT_ENTRY (entry), test_display_func, NULL, NULL); + g_signal_connect (G_OBJECT (entry), "contact_selected", |