EAddressbookSelector: Inherit from EClientSelector.

Use e_client_selector_get_client() to obtain an EClient.
This commit is contained in:
Matthew Barnes
2013-02-18 13:42:54 -05:00
parent 2c471d1291
commit c3ea33df61
3 changed files with 26 additions and 14 deletions

View File

@ -65,7 +65,7 @@ static GtkTargetEntry drag_types[] = {
G_DEFINE_TYPE (
EAddressbookSelector,
e_addressbook_selector,
E_TYPE_SOURCE_SELECTOR)
E_TYPE_CLIENT_SELECTOR)
static void
merge_context_next (MergeContext *merge_context)
@ -257,7 +257,8 @@ target_client_connect_cb (GObject *source_object,
g_return_if_fail (merge_context != NULL);
client = e_book_client_connect_finish (result, &error);
client = e_client_selector_get_client_finish (
E_CLIENT_SELECTOR (source_object), result, &error);
/* Sanity check. */
g_return_if_fail (
@ -327,8 +328,9 @@ addressbook_selector_data_dropped (ESourceSelector *selector,
merge_context->remove_from_source = remove_from_source;
merge_context->pending_adds = TRUE;
e_book_client_connect (
destination, NULL, target_client_connect_cb, merge_context);
e_client_selector_get_client (
E_CLIENT_SELECTOR (selector), destination, NULL,
target_client_connect_cb, merge_context);
return TRUE;
}
@ -381,14 +383,24 @@ e_addressbook_selector_init (EAddressbookSelector *selector)
}
GtkWidget *
e_addressbook_selector_new (ESourceRegistry *registry)
e_addressbook_selector_new (EClientCache *client_cache)
{
g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL);
ESourceRegistry *registry;
GtkWidget *widget;
return g_object_new (
g_return_val_if_fail (E_IS_CLIENT_CACHE (client_cache), NULL);
registry = e_client_cache_ref_registry (client_cache);
widget = g_object_new (
E_TYPE_ADDRESSBOOK_SELECTOR,
"client-cache", client_cache,
"extension-name", E_SOURCE_EXTENSION_ADDRESS_BOOK,
"registry", registry, NULL);
g_object_unref (registry);
return widget;
}
EAddressbookView *

View File

@ -49,16 +49,16 @@ typedef struct _EAddressbookSelectorClass EAddressbookSelectorClass;
typedef struct _EAddressbookSelectorPrivate EAddressbookSelectorPrivate;
struct _EAddressbookSelector {
ESourceSelector parent;
EClientSelector parent;
EAddressbookSelectorPrivate *priv;
};
struct _EAddressbookSelectorClass {
ESourceSelectorClass parent_class;
EClientSelectorClass parent_class;
};
GType e_addressbook_selector_get_type (void);
GtkWidget * e_addressbook_selector_new (ESourceRegistry *registry);
GtkWidget * e_addressbook_selector_new (EClientCache *client_cache);
EAddressbookView *
e_addressbook_selector_get_current_view
(EAddressbookSelector *selector);

View File

@ -94,7 +94,7 @@ book_shell_sidebar_constructed (GObject *object)
EShellBackend *shell_backend;
EShellSidebar *shell_sidebar;
EShellSettings *shell_settings;
ESourceRegistry *registry;
EClientCache *client_cache;
GtkContainer *container;
GtkWidget *widget;
@ -123,8 +123,8 @@ book_shell_sidebar_constructed (GObject *object)
container = GTK_CONTAINER (widget);
registry = e_shell_get_registry (shell);
widget = e_addressbook_selector_new (registry);
client_cache = e_shell_get_client_cache (shell);
widget = e_addressbook_selector_new (client_cache);
gtk_container_add (GTK_CONTAINER (container), widget);
priv->selector = g_object_ref (widget);
gtk_widget_show (widget);
@ -136,7 +136,7 @@ book_shell_sidebar_constructed (GObject *object)
G_BINDING_SYNC_CREATE,
(GBindingTransformFunc) e_binding_transform_uid_to_source,
(GBindingTransformFunc) e_binding_transform_source_to_uid,
g_object_ref (registry),
e_client_cache_ref_registry (client_cache),
(GDestroyNotify) g_object_unref);
}