Esempio n. 1
0
/* find EeeAccount for ESourceGroup object */
EeeAccount *eee_accounts_manager_find_account_by_group(EeeAccountsManager *self, ESourceGroup *group)
{
    g_return_val_if_fail(IS_EEE_ACCOUNTS_MANAGER(self), NULL);
    g_return_val_if_fail(E_IS_SOURCE_GROUP(group), NULL);
    g_return_val_if_fail(e_source_group_is_3e(group), NULL);

    return eee_accounts_manager_find_account_by_name(self, e_source_group_peek_name(group) + 4);
}
Esempio n. 2
0
/* For now we show all the sources from a group in a List.
   Later we will us a Tree to show them usings groups. */
static void
eds_load_resources (ESourceGroup  *group,
		    PlannerPlugin *plugin,
		    const gchar   *search)
{
	GtkListStore      *model;
	GSList            *sources, *sl;
	PlannerPluginPriv *priv;

	g_return_if_fail (E_IS_SOURCE_GROUP (group));
	sources = e_source_group_peek_sources (group);

	priv = plugin->priv;
	model = GTK_LIST_STORE (priv->resources_model);

	if (sources == NULL) {
		if (model) {
			gtk_list_store_clear (model);
		}
		gtk_widget_set_sensitive (glade_xml_get_widget (priv->glade,
								"search_box"), FALSE);
		return;
	}

	if (model) {
		gtk_list_store_clear (model);
	} else {
		GtkCellRenderer   *toggle;
		guint              column_pos;
		GtkTreeViewColumn *column;

		model = gtk_list_store_new (NUM_RESOURCE_COLS,
					    G_TYPE_STRING,   /* name */
					    G_TYPE_STRING,   /* email */
					    G_TYPE_BOOLEAN,  /* import */
					    GDK_TYPE_PIXBUF, /* photo */
					    G_TYPE_OBJECT);  /* full contact */

		priv->resources_model = GTK_TREE_MODEL (model);

		gtk_tree_view_set_model (priv->resources_tree_view,
					 priv->resources_model);

		/* Name Column with sorting features */
		column_pos = gtk_tree_view_insert_column_with_attributes
			(priv->resources_tree_view,
			 -1, _("Name"),
			 gtk_cell_renderer_text_new (), "text", COL_RESOURCE_NAME,
			 NULL);

		column = gtk_tree_view_get_column (priv->resources_tree_view, column_pos-1);
		gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->resources_model),
						 column_pos-1,
						 eds_compare_field,
						 GINT_TO_POINTER (column_pos-1),
						 NULL);
		gtk_tree_view_column_set_sort_column_id (column, column_pos-1);
		g_signal_connect (gtk_tree_view_get_column
				  (priv->resources_tree_view, column_pos-1),
				  "clicked",
				  G_CALLBACK (eds_column_clicked),
				  plugin);

		/* Email column with sorting features */
		column_pos = gtk_tree_view_insert_column_with_attributes
			(priv->resources_tree_view,
			 -1, _("Email"),
			 gtk_cell_renderer_text_new (), "text", COL_RESOURCE_EMAIL,
			 NULL);

		column = gtk_tree_view_get_column (priv->resources_tree_view, column_pos-1);
		gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->resources_model),
						 column_pos-1,
						 eds_compare_field,
						 GINT_TO_POINTER (column_pos-1),
						 NULL);
		gtk_tree_view_column_set_sort_column_id (column, column_pos-1);
		g_signal_connect (gtk_tree_view_get_column
				  (priv->resources_tree_view, column_pos-1),
				  "clicked",
				  G_CALLBACK (eds_column_clicked),
				  plugin);

		/* Import */
		toggle = gtk_cell_renderer_toggle_new ();
		gtk_tree_view_insert_column_with_attributes
			(priv->resources_tree_view,
			 -1, _("Import"),
			 toggle, "active", COL_RESOURCE_SELECTED,
			 NULL);
		g_signal_connect (toggle, "toggled",
				  G_CALLBACK (eds_resource_selected),
				  plugin);

		/* Photo */
		gtk_tree_view_insert_column_with_attributes
			(priv->resources_tree_view,
			 -1, _("Photo"),
			 gtk_cell_renderer_pixbuf_new (), "pixbuf", COL_RESOURCE_PHOTO,
			 NULL);

		gtk_tree_view_set_headers_clickable (priv->resources_tree_view, TRUE);
	}

	for (sl = sources; sl; sl = sl->next) {
		EBook      *client;
		AsyncQuery *async_query = g_new0 (AsyncQuery, 1);

		g_free (plugin->priv->current_query_id);
		plugin->priv->current_query_id = e_uid_new ();

		async_query->plugin = plugin;
		async_query->uid = plugin->priv->current_query_id;
		async_query->search = search;

		client = e_book_new (sl->data, NULL);
		g_message ("Open book async query: %s", async_query->uid);
		e_book_async_open (client, TRUE, eds_receive_book_cb, async_query);
		eds_plugin_busy (plugin, TRUE);
	}
}