Beispiel #1
0
static void
pkg_sources_page_get_plugin_cb (PkConnection *connection, /* IN */
                                GAsyncResult *result,     /* IN */
                                gpointer      user_data)  /* IN */
{
	PkgSourceCall *call = user_data;
	PkgSourcesPagePrivate *priv;
	PkgSourcesPage *page;
	GtkTreeIter iter;
	GError *error = NULL;
	gchar *plugin = NULL;

	g_return_if_fail(call != NULL);

	ENTRY;
	page = PKG_SOURCES_PAGE(call->user_data);
	priv = page->priv;
	if (!pk_connection_source_get_plugin_finish(connection, result, &plugin, &error)) {
		/* TODO: show error */
		g_error_free(error);
		GOTO(cleanup);
	}
	if (!pkg_sources_page_get_source_iter(call->user_data, call->source, &iter)) {
		GOTO(cleanup);
	}
	gtk_list_store_set(priv->model, &iter, COLUMN_PLUGIN, plugin, -1);
  cleanup:
	g_free(plugin);
	g_object_unref(page);
	pkg_source_call_free(call);
	EXIT;
}
Beispiel #2
0
static void
pkg_channel_page_source_get_plugin_cb (GObject      *object,    /* IN */
                                       GAsyncResult *result,    /* IN */
                                       gpointer      user_data) /* IN */
{
	PkgChannelPagePrivate *priv;
	SourceCall *call = user_data;
	GError *error = NULL;
	gchar *plugin = NULL;
	GtkTreeModel *model;
	GtkTreeIter iter;
	gint id;

	g_return_if_fail(call != NULL);

	ENTRY;
	priv = call->page->priv;
	model = GTK_TREE_MODEL(priv->model);
	if (!pk_connection_source_get_plugin_finish(priv->connection, result,
	                                            &plugin, &error)) {
		WARNING(Source, "Error retrieving source plugin: %s",
		        error->message);
		g_error_free(error);
		GOTO(failed);
	}
	if (gtk_tree_model_get_iter_first(model, &iter)) {
		do {
			gtk_tree_model_get(model, &iter, COLUMN_ID, &id, -1);
			if (id == call->source) {
				gtk_list_store_set(priv->model, &iter,
				                   COLUMN_PLUGIN, plugin,
				                   -1);
				BREAK;
			}
		} while (gtk_tree_model_iter_next(model, &iter));
	}
  failed:
  	g_free(plugin);
  	source_call_free(call);
	EXIT;
}
Beispiel #3
0
static void
pkg_window_connection_source_get_plugin_cb (GObject      *object,    /* IN */
                                            GAsyncResult *result,    /* IN */
                                            gpointer      user_data) /* IN */
{
	PkgWindowSourceCall *call = user_data;
	PkConnection *connection;
	PkgWindowPrivate *priv;
	gchar *plugin = NULL;
	GError *error = NULL;
	GtkTreeIter iter;
	GtkTreeIter child;

	g_return_if_fail(user_data != NULL);

	ENTRY;
	priv = call->window->priv;
	connection = PK_CONNECTION(object);
	if (!pk_connection_source_get_plugin_finish(connection, result,
	                                            &plugin, &error)) {
		WARNING(Connection, "Error retrieving subscription created-at: %s",
		        error->message);
		g_error_free(error);
		EXIT;
	}
	if (!pkg_window_get_sources_iter(call->window, connection, &iter)) {
		GOTO(iter_not_found);
	}
	if (!pkg_window_get_child_iter_with_id(call->window, connection,
	                                       &iter, &child, call->source)) {
		GOTO(iter_not_found);
	}
	gtk_tree_store_set(priv->model, &child, COLUMN_SUBTITLE, plugin, -1);
  iter_not_found:
	pkg_window_source_call_free(call);
	g_free(plugin);
	EXIT;
}