diff options
Diffstat (limited to 'addressbook/gui/widgets/e-addressbook-model.c')
-rw-r--r-- | addressbook/gui/widgets/e-addressbook-model.c | 54 |
1 files changed, 51 insertions, 3 deletions
diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c index 18882489b6..3cc02dff54 100644 --- a/addressbook/gui/widgets/e-addressbook-model.c +++ b/addressbook/gui/widgets/e-addressbook-model.c @@ -36,6 +36,7 @@ ((obj), E_TYPE_ADDRESSBOOK_MODEL, EAddressbookModelPrivate)) struct _EAddressbookModelPrivate { + ESourceRegistry *registry; EBookClient *book_client; gchar *query_str; EBookClientView *client_view; @@ -63,7 +64,8 @@ enum { PROP_0, PROP_CLIENT, PROP_EDITABLE, - PROP_QUERY + PROP_QUERY, + PROP_REGISTRY }; enum { @@ -462,6 +464,16 @@ remove_status_cb (gpointer data) } static void +addressbook_model_set_registry (EAddressbookModel *model, + ESourceRegistry *registry) +{ + g_return_if_fail (E_IS_SOURCE_REGISTRY (registry)); + g_return_if_fail (model->priv->registry == NULL); + + model->priv->registry = g_object_ref (registry); +} + +static void addressbook_model_set_property (GObject *object, guint property_id, const GValue *value, @@ -485,6 +497,12 @@ addressbook_model_set_property (GObject *object, E_ADDRESSBOOK_MODEL (object), g_value_get_string (value)); return; + + case PROP_REGISTRY: + addressbook_model_set_registry ( + E_ADDRESSBOOK_MODEL (object), + g_value_get_object (value)); + return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -515,6 +533,12 @@ addressbook_model_get_property (GObject *object, value, e_addressbook_model_get_query ( E_ADDRESSBOOK_MODEL (object))); return; + + case PROP_REGISTRY: + g_value_set_object ( + value, e_addressbook_model_get_registry ( + E_ADDRESSBOOK_MODEL (object))); + return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -615,6 +639,18 @@ e_addressbook_model_class_init (EAddressbookModelClass *class) G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + 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_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + signals[WRITABLE_STATUS] = g_signal_new ("writable_status", G_OBJECT_CLASS_TYPE (object_class), @@ -726,9 +762,21 @@ e_addressbook_model_init (EAddressbookModel *model) } EAddressbookModel * -e_addressbook_model_new (void) +e_addressbook_model_new (ESourceRegistry *registry) { - return g_object_new (E_TYPE_ADDRESSBOOK_MODEL, NULL); + g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL); + + return g_object_new ( + E_TYPE_ADDRESSBOOK_MODEL, + "registry", registry, NULL); +} + +ESourceRegistry * +e_addressbook_model_get_registry (EAddressbookModel *model) +{ + g_return_val_if_fail (E_IS_ADDRESSBOOK_MODEL (model), NULL); + + return model->priv->registry; } EContact * |