71
75
g_clear_object (&self->priv->cancellable);
72
76
g_clear_object (&self->priv->result);
78
g_free (self->priv->display_name);
79
g_clear_error (&self->priv->client_error);
74
81
G_OBJECT_CLASS (gd_miner_parent_class)->dispose (object);
85
gd_miner_init_goa (GdMiner *self)
89
const gchar *provider_type;
91
GdMinerClass *miner_class = GD_MINER_GET_CLASS (self);
93
self->priv->client = goa_client_new_sync (NULL, &self->priv->client_error);
95
if (self->priv->client_error != NULL)
97
g_critical ("Unable to create GoaClient: %s - indexing for %s will not work",
98
self->priv->client_error->message, miner_class->goa_provider_type);
102
accounts = goa_client_get_accounts (self->priv->client);
103
for (l = accounts; l != NULL; l = l->next)
107
account = goa_object_peek_account (object);
111
provider_type = goa_account_get_provider_type (account);
112
if (g_strcmp0 (provider_type, miner_class->goa_provider_type) == 0)
114
g_free (self->priv->display_name);
115
self->priv->display_name = goa_account_dup_provider_name (account);
120
g_list_free_full (accounts, g_object_unref);
124
gd_miner_constructed (GObject *obj)
126
GdMiner *self = GD_MINER (obj);
128
G_OBJECT_CLASS (gd_miner_parent_class)->constructed (obj);
130
gd_miner_init_goa (self);
78
134
gd_miner_init (GdMiner *self)
80
136
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GD_TYPE_MINER, GdMinerPrivate);
137
self->priv->display_name = g_strdup ("");
86
143
GObjectClass *oclass = G_OBJECT_CLASS (klass);
145
oclass->constructed = gd_miner_constructed;
88
146
oclass->dispose = gd_miner_dispose;
90
148
g_type_class_add_private (klass, sizeof (GdMinerPrivate));
555
client_ready_cb (GObject *source,
613
gd_miner_refresh_db_real (GdMiner *self)
559
GdMiner *self = user_data;
560
615
GoaDocuments *documents;
561
616
GoaAccount *account;
562
617
GoaObject *object;
563
618
const gchar *provider_type;
564
GError *error = NULL;
565
619
GList *accounts, *doc_objects, *acc_objects, *l;
566
620
GdMinerClass *miner_class = GD_MINER_GET_CLASS (self);
568
self->priv->client = goa_client_new_finish (res, &error);
572
gd_miner_complete_error (self, error);
576
622
doc_objects = NULL;
577
623
acc_objects = NULL;
622
goa_client_new (self->priv->cancellable, client_ready_cb, self);
668
gd_miner_refresh_db_real (self);
672
gd_miner_get_display_name (GdMiner *self)
674
return self->priv->display_name;
628
680
GAsyncReadyCallback callback,
629
681
gpointer user_data)
683
if (self->priv->client_error != NULL)
685
gd_miner_complete_error (self, self->priv->client_error);
631
689
self->priv->result =
632
690
g_simple_async_result_new (G_OBJECT (self),
633
691
callback, user_data,