Commit 4ff90f2b authored by Matthew Barnes's avatar Matthew Barnes
Browse files

Use EClientComboBox where appropriate.

Basically any place where we use both EClient and ESourceComboBox.
parent 977be20c
......@@ -234,7 +234,7 @@
</packing>
</child>
<child>
<object class="ESourceComboBox" type-func="e_source_combo_box_get_type" id="source-combo-box-source">
<object class="EClientComboBox" type-func="e_client_combo_box_get_type" id="client-combo-box">
<property name="extension-name">Address Book</property>
<property name="show-colors">False</property>
<property name="visible">True</property>
......
......@@ -686,7 +686,7 @@ fill_in_source_field (EContactEditor *editor)
return;
source_menu = e_builder_get_widget (
editor->builder, "source-combo-box-source");
editor->builder, "client-combo-box");
e_source_combo_box_set_active (
E_SOURCE_COMBO_BOX (source_menu),
......@@ -3101,15 +3101,19 @@ init_all (EContactEditor *editor)
}
static void
contact_editor_client_connect_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
contact_editor_get_client_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
EClientComboBox *combo_box;
ConnectClosure *closure = user_data;
EClient *client;
GError *error = NULL;
client = e_book_client_connect_finish (result, &error);
combo_box = E_CLIENT_COMBO_BOX (source_object);
client = e_client_combo_box_get_client_finish (
combo_box, result, &error);
/* Sanity check. */
g_return_if_fail (
......@@ -3123,7 +3127,6 @@ contact_editor_client_connect_cb (GObject *source_object,
goto exit;
} else if (error != NULL) {
GtkWidget *source_combo_box;
GtkWindow *parent;
parent = eab_editor_get_window (EAB_EDITOR (closure->editor));
......@@ -3132,11 +3135,8 @@ contact_editor_client_connect_cb (GObject *source_object,
GTK_WIDGET (parent), NULL,
closure->source, error);
source_combo_box = e_builder_get_widget (
closure->editor->builder,
"source-combo-box-source");
e_source_combo_box_set_active (
E_SOURCE_COMBO_BOX (source_combo_box),
E_SOURCE_COMBO_BOX (combo_box),
closure->source);
g_error_free (error);
......@@ -3153,7 +3153,7 @@ exit:
}
static void
source_changed (ESourceComboBox *source_combo_box,
source_changed (EClientComboBox *combo_box,
EContactEditor *editor)
{
ConnectClosure *closure;
......@@ -3161,7 +3161,8 @@ source_changed (ESourceComboBox *source_combo_box,
ESource *source_source;
ESource *source;
source = e_source_combo_box_ref_active (source_combo_box);
source = e_source_combo_box_ref_active (
E_SOURCE_COMBO_BOX (combo_box));
g_return_if_fail (source != NULL);
if (editor->cancellable != NULL) {
......@@ -3189,9 +3190,10 @@ source_changed (ESourceComboBox *source_combo_box,
closure->editor = g_object_ref (editor);
closure->source = g_object_ref (source);
e_book_client_connect (
source, editor->cancellable,
contact_editor_client_connect_cb,
e_client_combo_box_get_client (
combo_box, source,
editor->cancellable,
contact_editor_get_client_cb,
closure);
exit:
......@@ -4062,7 +4064,7 @@ e_contact_editor_init (EContactEditor *e_contact_editor)
{
GtkBuilder *builder;
EShell *shell;
ESourceRegistry *registry;
EClientCache *client_cache;
GtkWidget *container;
GtkWidget *widget, *label;
GtkEntryCompletion *completion;
......@@ -4070,7 +4072,7 @@ e_contact_editor_init (EContactEditor *e_contact_editor)
/* FIXME The shell should be obtained
* through a constructor property. */
shell = e_shell_get_default ();
registry = e_shell_get_registry (shell);
client_cache = e_shell_get_client_cache (shell);
e_contact_editor->name = e_contact_name_new ();
......@@ -4122,9 +4124,9 @@ e_contact_editor_init (EContactEditor *e_contact_editor)
widget, "clicked",
G_CALLBACK (categories_clicked), e_contact_editor);
widget = e_builder_get_widget (
e_contact_editor->builder, "source-combo-box-source");
e_source_combo_box_set_registry (
E_SOURCE_COMBO_BOX (widget), registry);
e_contact_editor->builder, "client-combo-box");
e_client_combo_box_set_client_cache (
E_CLIENT_COMBO_BOX (widget), client_cache);
g_signal_connect (
widget, "changed",
G_CALLBACK (source_changed), e_contact_editor);
......
......@@ -41,7 +41,7 @@ struct _QuickAdd {
gchar *vcard;
EContact *contact;
GCancellable *cancellable;
ESourceRegistry *registry;
EClientCache *client_cache;
ESource *source;
EContactQuickAddCallback cb;
......@@ -57,11 +57,11 @@ struct _QuickAdd {
};
static QuickAdd *
quick_add_new (ESourceRegistry *registry)
quick_add_new (EClientCache *client_cache)
{
QuickAdd *qa = g_new0 (QuickAdd, 1);
qa->contact = e_contact_new ();
qa->registry = g_object_ref (registry);
qa->client_cache = g_object_ref (client_cache);
qa->refs = 1;
return qa;
}
......@@ -80,7 +80,7 @@ quick_add_unref (QuickAdd *qa)
g_free (qa->email);
g_free (qa->vcard);
g_object_unref (qa->contact);
g_object_unref (qa->registry);
g_object_unref (qa->client_cache);
g_free (qa);
}
}
......@@ -128,7 +128,8 @@ merge_cb (GObject *source_object,
EClient *client;
GError *error = NULL;
client = e_book_client_connect_finish (result, &error);
client = e_client_cache_get_client_finish (
E_CLIENT_CACHE (source_object), result, &error);
/* Sanity check. */
g_return_if_fail (
......@@ -151,11 +152,17 @@ merge_cb (GObject *source_object,
return;
}
if (!e_client_is_readonly (client))
if (!e_client_is_readonly (client)) {
ESourceRegistry *registry;
registry = e_client_cache_ref_registry (qa->client_cache);
eab_merging_book_add_contact (
qa->registry, E_BOOK_CLIENT (client),
registry, E_BOOK_CLIENT (client),
qa->contact, NULL, NULL);
else {
g_object_unref (registry);
} else {
ESource *source = e_client_get_source (client);
e_alert_run_dialog_for_args (
......@@ -183,7 +190,10 @@ quick_add_merge_contact (QuickAdd *qa)
qa->cancellable = g_cancellable_new ();
e_book_client_connect (qa->source, qa->cancellable, merge_cb, qa);
e_client_cache_get_client (
qa->client_cache, qa->source,
E_SOURCE_EXTENSION_ADDRESS_BOOK,
qa->cancellable, merge_cb, qa);
}
/* Raise a contact editor with all fields editable,
......@@ -283,9 +293,11 @@ ce_have_book (GObject *source_object,
{
QuickAdd *qa = user_data;
EClient *client;
ESourceRegistry *registry;
GError *error = NULL;
client = e_book_client_connect_finish (result, &error);
client = e_client_cache_get_client_finish (
E_CLIENT_CACHE (source_object), result, &error);
/* Sanity check. */
g_return_if_fail (
......@@ -307,9 +319,13 @@ ce_have_book (GObject *source_object,
return;
}
registry = e_client_cache_ref_registry (qa->client_cache);
eab_merging_book_find_contact (
qa->registry, E_BOOK_CLIENT (client),
registry, E_BOOK_CLIENT (client),
qa->contact, ce_have_contact, qa);
g_object_unref (registry);
}
static void
......@@ -322,7 +338,10 @@ edit_contact (QuickAdd *qa)
qa->cancellable = g_cancellable_new ();
e_book_client_connect (qa->source, qa->cancellable, ce_have_book, qa);
e_client_cache_get_client (
qa->client_cache, qa->source,
E_SOURCE_EXTENSION_ADDRESS_BOOK,
qa->cancellable, ce_have_book, qa);
}
#define QUICK_ADD_RESPONSE_EDIT_FULL 2
......@@ -425,6 +444,7 @@ build_quick_add_dialog (QuickAdd *qa)
GtkWidget *label;
GtkTable *table;
ESource *source;
ESourceRegistry *registry;
const gchar *extension_name;
const gint xpad = 0, ypad = 0;
......@@ -467,9 +487,12 @@ build_quick_add_dialog (QuickAdd *qa)
}
extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK;
source = e_source_registry_ref_default_address_book (qa->registry);
registry = e_client_cache_ref_registry (qa->client_cache);
source = e_source_registry_ref_default_address_book (registry);
g_object_unref (registry);
qa->combo_box = e_source_combo_box_new (qa->registry, extension_name);
qa->combo_box = e_client_combo_box_new (
qa->client_cache, extension_name);
e_source_combo_box_set_active (
E_SOURCE_COMBO_BOX (qa->combo_box), source);
......@@ -533,7 +556,7 @@ build_quick_add_dialog (QuickAdd *qa)
}
void
e_contact_quick_add (ESourceRegistry *registry,
e_contact_quick_add (EClientCache *client_cache,
const gchar *in_name,
const gchar *email,
EContactQuickAddCallback cb,
......@@ -544,7 +567,7 @@ e_contact_quick_add (ESourceRegistry *registry,
gchar *name = NULL;
gint len;
g_return_if_fail (E_IS_SOURCE_REGISTRY (registry));
g_return_if_fail (E_IS_CLIENT_CACHE (client_cache));
/* We need to have *something* to work with. */
if (in_name == NULL && email == NULL) {
......@@ -567,7 +590,7 @@ e_contact_quick_add (ESourceRegistry *registry,
g_strstrip (name);
}
qa = quick_add_new (registry);
qa = quick_add_new (client_cache);
qa->cb = cb;
qa->closure = closure;
if (name)
......@@ -582,7 +605,7 @@ e_contact_quick_add (ESourceRegistry *registry,
}
void
e_contact_quick_add_free_form (ESourceRegistry *registry,
e_contact_quick_add_free_form (EClientCache *client_cache,
const gchar *text,
EContactQuickAddCallback cb,
gpointer closure)
......@@ -591,10 +614,10 @@ e_contact_quick_add_free_form (ESourceRegistry *registry,
const gchar *last_at, *s;
gboolean in_quote;
g_return_if_fail (E_IS_SOURCE_REGISTRY (registry));
g_return_if_fail (E_IS_CLIENT_CACHE (client_cache));
if (text == NULL) {
e_contact_quick_add (registry, NULL, NULL, cb, closure);
e_contact_quick_add (client_cache, NULL, NULL, cb, closure);
return;
}
......@@ -658,14 +681,14 @@ e_contact_quick_add_free_form (ESourceRegistry *registry,
g_strstrip (email);
}
e_contact_quick_add (registry, name, email, cb, closure);
e_contact_quick_add (client_cache, name, email, cb, closure);
g_free (name);
g_free (email);
}
void
e_contact_quick_add_email (ESourceRegistry *registry,
e_contact_quick_add_email (EClientCache *client_cache,
const gchar *email,
EContactQuickAddCallback cb,
gpointer closure)
......@@ -688,14 +711,14 @@ e_contact_quick_add_email (ESourceRegistry *registry,
addr = g_strdup (email);
}
e_contact_quick_add (registry, name, addr, cb, closure);
e_contact_quick_add (client_cache, name, addr, cb, closure);
g_free (name);
g_free (addr);
}
void
e_contact_quick_add_vcard (ESourceRegistry *registry,
e_contact_quick_add_vcard (EClientCache *client_cache,
const gchar *vcard,
EContactQuickAddCallback cb,
gpointer closure)
......@@ -704,7 +727,7 @@ e_contact_quick_add_vcard (ESourceRegistry *registry,
GtkWidget *dialog;
EContact *contact;
g_return_if_fail (E_IS_SOURCE_REGISTRY (registry));
g_return_if_fail (E_IS_CLIENT_CACHE (client_cache));
/* We need to have *something* to work with. */
if (vcard == NULL) {
......@@ -713,7 +736,7 @@ e_contact_quick_add_vcard (ESourceRegistry *registry,
return;
}
qa = quick_add_new (registry);
qa = quick_add_new (client_cache);
qa->cb = cb;
qa->closure = closure;
quick_add_set_vcard (qa, vcard);
......
......@@ -25,23 +25,25 @@
#include <libebook/libebook.h>
#include <e-util/e-util.h>
typedef void (*EContactQuickAddCallback) (EContact *new_contact,
gpointer closure);
void e_contact_quick_add (ESourceRegistry *registry,
void e_contact_quick_add (EClientCache *client_cache,
const gchar *name,
const gchar *email,
EContactQuickAddCallback cb,
gpointer closure);
void e_contact_quick_add_free_form (ESourceRegistry *registry,
void e_contact_quick_add_free_form (EClientCache *client_cache,
const gchar *text,
EContactQuickAddCallback cb,
gpointer closure);
void e_contact_quick_add_email (ESourceRegistry *registry,
void e_contact_quick_add_email (EClientCache *client_cache,
const gchar *email,
EContactQuickAddCallback cb,
gpointer closure);
void e_contact_quick_add_vcard (ESourceRegistry *registry,
void e_contact_quick_add_vcard (EClientCache *client_cache,
const gchar *vcard,
EContactQuickAddCallback cb,
gpointer closure);
......
......@@ -61,7 +61,7 @@
<property name="xalign">1</property>
<property name="label" translatable="yes">_Where:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">source-combo-box</property>
<property name="mnemonic_widget">client-combo-box</property>
</object>
<packing>
<property name="top_attach">1</property>
......@@ -82,7 +82,7 @@
</packing>
</child>
<child>
<object class="ESourceComboBox" type-func="e_source_combo_box_get_type" id="source-combo-box">
<object class="EClientComboBox" type-func="e_client_combo_box_get_type" id="client-combo-box">
<property name="extension-name">Address Book</property>
<property name="show-colors">False</property>
<property name="visible">True</property>
......
......@@ -61,6 +61,8 @@
CONTACT_LIST_EDITOR_WIDGET ((editor), "add-button")
#define CONTACT_LIST_EDITOR_WIDGET_CHECK_BUTTON(editor) \
CONTACT_LIST_EDITOR_WIDGET ((editor), "check-button")
#define CONTACT_LIST_EDITOR_WIDGET_CLIENT_COMBO_BOX(editor) \
CONTACT_LIST_EDITOR_WIDGET ((editor), "client-combo-box")
#define CONTACT_LIST_EDITOR_WIDGET_DIALOG(editor) \
CONTACT_LIST_EDITOR_WIDGET ((editor), "dialog")
#define CONTACT_LIST_EDITOR_WIDGET_EMAIL_ENTRY(editor) \
......@@ -73,8 +75,6 @@
CONTACT_LIST_EDITOR_WIDGET ((editor), "ok-button")
#define CONTACT_LIST_EDITOR_WIDGET_REMOVE_BUTTON(editor) \
CONTACT_LIST_EDITOR_WIDGET ((editor), "remove-button")
#define CONTACT_LIST_EDITOR_WIDGET_SOURCE_MENU(editor) \
CONTACT_LIST_EDITOR_WIDGET ((editor), "source-combo-box")
#define CONTACT_LIST_EDITOR_WIDGET_TREE_VIEW(editor) \
CONTACT_LIST_EDITOR_WIDGET ((editor), "tree-view")
#define CONTACT_LIST_EDITOR_WIDGET_TOP_BUTTON(editor) \
......@@ -189,7 +189,7 @@ contact_list_editor_update (EContactListEditor *editor)
priv->allows_contact_lists);
gtk_widget_set_sensitive (
WIDGET (SOURCE_MENU), priv->is_new_list);
WIDGET (CLIENT_COMBO_BOX), priv->is_new_list);
}
static void
......@@ -318,19 +318,23 @@ contact_list_editor_add_email (EContactListEditor *editor,
}
static void
contact_list_editor_client_connect_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
contact_list_editor_get_client_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
ConnectClosure *closure = user_data;
EContactListEditor *editor = closure->editor;
EClientComboBox *combo_box;
EContactStore *contact_store;
ENameSelectorEntry *entry;
EClient *client;
EBookClient *book_client;
GError *error = NULL;
client = e_book_client_connect_finish (result, &error);
combo_box = E_CLIENT_COMBO_BOX (source_object);
client = e_client_combo_box_get_client_finish (
combo_box, result, &error);
/* Sanity check. */
g_return_if_fail (
......@@ -347,7 +351,7 @@ contact_list_editor_client_connect_cb (GObject *source_object,
closure->source, error);
e_source_combo_box_set_active (
E_SOURCE_COMBO_BOX (WIDGET (SOURCE_MENU)),
E_SOURCE_COMBO_BOX (combo_box),
closure->source);
g_error_free (error);
......@@ -976,10 +980,10 @@ contact_list_editor_select_button_clicked_cb (GtkWidget *widget)
}
void
contact_list_editor_source_menu_changed_cb (GtkWidget *widget);
contact_list_editor_combo_box_changed_cb (GtkWidget *widget);
void
contact_list_editor_source_menu_changed_cb (GtkWidget *widget)
contact_list_editor_combo_box_changed_cb (GtkWidget *widget)
{
ESourceComboBox *combo_box;
EContactListEditor *editor;
......@@ -997,9 +1001,10 @@ contact_list_editor_source_menu_changed_cb (GtkWidget *widget)
client_source = e_client_get_source (client);
if (!e_source_equal (client_source, active_source))
e_book_client_connect (
e_client_combo_box_get_client (
E_CLIENT_COMBO_BOX (widget),
active_source, NULL,
contact_list_editor_client_connect_cb,
contact_list_editor_get_client_cb,
g_object_ref (editor));
g_object_unref (active_source);
......@@ -1224,7 +1229,7 @@ static void
setup_custom_widgets (EContactListEditor *editor)
{
EShell *shell;
ESourceRegistry *registry;
EClientCache *client_cache;
GtkWidget *combo_box;
ENameSelectorEntry *name_selector_entry;
GtkWidget *old, *parent;
......@@ -1236,16 +1241,16 @@ setup_custom_widgets (EContactListEditor *editor)
priv = E_CONTACT_LIST_EDITOR_GET_PRIVATE (editor);
shell = eab_editor_get_shell (EAB_EDITOR (editor));
registry = e_shell_get_registry (shell);
client_cache = e_shell_get_client_cache (shell);
combo_box = WIDGET (SOURCE_MENU);
combo_box = WIDGET (CLIENT_COMBO_BOX);
e_source_combo_box_set_registry (
E_SOURCE_COMBO_BOX (combo_box), registry);
e_client_combo_box_set_client_cache (
E_CLIENT_COMBO_BOX (combo_box), client_cache);
g_signal_connect (
combo_box, "changed", G_CALLBACK (
contact_list_editor_source_menu_changed_cb), NULL);
contact_list_editor_combo_box_changed_cb), NULL);
old = CONTACT_LIST_EDITOR_WIDGET (editor, "email-entry");
g_return_if_fail (old != NULL);
......@@ -1407,7 +1412,7 @@ contact_list_editor_constructed (GObject *object)
GtkCellRenderer *renderer;
GtkTreeView *view;
GtkTreeSelection *selection;
ESourceRegistry *registry;
EClientCache *client_cache;
EShell *shell;
editor = E_CONTACT_LIST_EDITOR (object);
......@@ -1417,7 +1422,7 @@ contact_list_editor_constructed (GObject *object)
constructed (object);
shell = eab_editor_get_shell (EAB_EDITOR (editor));
registry = e_shell_get_registry (shell);
client_cache = e_shell_get_client_cache (shell);
editor->priv->editable = TRUE;
editor->priv->allows_contact_lists = TRUE;
......@@ -1456,7 +1461,7 @@ contact_list_editor_constructed (GObject *object)
column, renderer, (GtkTreeCellDataFunc)
contact_list_editor_render_destination, NULL, NULL);
editor->priv->name_selector = e_name_selector_new (registry);
editor->priv->name_selector = e_name_selector_new (client_cache);
e_name_selector_model_add_section (
e_name_selector_peek_model (editor->priv->name_selector),
......@@ -1916,10 +1921,10 @@ e_contact_list_editor_set_contact (EContactListEditor *editor,
if (priv->book_client != NULL) {
e_source_combo_box_set_active (
E_SOURCE_COMBO_BOX (WIDGET (SOURCE_MENU)),
E_SOURCE_COMBO_BOX (WIDGET (CLIENT_COMBO_BOX)),
e_client_get_source (E_CLIENT (priv->book_client)));
gtk_widget_set_sensitive (
WIDGET (SOURCE_MENU), priv->is_new_list);
WIDGET (CLIENT_COMBO_BOX), priv->is_new_list);
}
priv->changed = FALSE;
......
......@@ -35,8 +35,6 @@
#include <libical/icalattach.h>
#include "e-util/e-util.h"
#include "../calendar-config.h"
#include "comp-editor-util.h"
#include "alarm-dialog.h"
......@@ -50,7 +48,7 @@ typedef struct {
/* The client */
ECalClient *cal_client;
ESourceRegistry *registry;
EClientCache *client_cache;
/* Toplevel */
GtkWidget *toplevel;
......@@ -911,7 +909,7 @@ setup_select_names (Dialog *dialog)
ENameSelectorModel *name_selector_model;
ENameSelectorDialog *name_selector_dialog;
dialog->name_selector = e_name_selector_new (dialog->registry);
dialog->name_selector = e_name_selector_new (dialog->client_cache);
e_name_selector_load_books (dialog->name_selector);
name_selector_model = e_name_selector_peek_model (dialog->name_selector);
......@@ -1216,7 +1214,7 @@ init_widgets (Dialog *dialog)
gboolean
alarm_dialog_run (GtkWidget *parent,
ESourceRegistry *registry,
EClientCache *client_cache,
ECalClient *cal_client,
ECalComponentAlarm *alarm)
{
......@@ -1224,12 +1222,12 @@ alarm_dialog_run (GtkWidget *parent,
GtkWidget *container;
gint response_id;
g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), FALSE);
g_return_val_if_fail (E_IS_CLIENT_CACHE (client_cache), FALSE);
g_return_val_if_fail (alarm != NULL, FALSE);
dialog.alarm = alarm;
dialog.cal_client = cal_client;
dialog.registry = registry;
dialog.client_cache = client_cache;
dialog.builder = gtk_builder_new ();