[gnome-packagekit] Update the code to use the new GObject API provided by PackageKit
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-packagekit] Update the code to use the new GObject API provided by PackageKit
- Date: Mon, 9 Nov 2009 13:50:55 +0000 (UTC)
commit d97d5e16f607c1dbffab764b4b08fffad24ad970
Author: Richard Hughes <richard hughsie com>
Date: Mon Nov 9 13:50:06 2009 +0000
Update the code to use the new GObject API provided by PackageKit
src/gpk-application.c | 374 +++++++++++++++++++++++++++------------------
src/gpk-check-update.c | 170 +++++++++++++--------
src/gpk-common.c | 25 ++--
src/gpk-dbus-task.c | 217 +++++++++++++++------------
src/gpk-dialog.c | 28 ++--
src/gpk-enum.c | 4 +-
src/gpk-enum.h | 4 +-
src/gpk-firmware.c | 46 +++---
src/gpk-hardware.c | 39 +++--
src/gpk-helper-chooser.c | 22 ++-
src/gpk-log.c | 91 ++++++++----
src/gpk-modal-dialog.c | 43 ++++--
src/gpk-repo.c | 51 ++++---
src/gpk-service-pack.c | 55 ++++---
src/gpk-task.c | 106 ++++++++-----
src/gpk-update-viewer.c | 314 ++++++++++++++++++++++++--------------
src/gpk-watch.c | 75 ++++++----
17 files changed, 1021 insertions(+), 643 deletions(-)
---
diff --git a/src/gpk-application.c b/src/gpk-application.c
index 4ca4138..ce6a641 100644
--- a/src/gpk-application.c
+++ b/src/gpk-application.c
@@ -536,8 +536,8 @@ gpk_application_get_files_cb (PkClient *client, GAsyncResult *res, GpkApplicatio
GPtrArray *array_sort = NULL;
GtkWidget *dialog;
GtkWindow *window;
- PkItemErrorCode *error_item = NULL;
- PkItemFiles *item;
+ PkError *error_code = NULL;
+ PkFiles *item;
PkResults *results;
g_return_if_fail (GPK_IS_APPLICATION (application));
@@ -551,15 +551,15 @@ gpk_application_get_files_cb (PkClient *client, GAsyncResult *res, GpkApplicatio
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get files: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get files: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -579,8 +579,13 @@ gpk_application_get_files_cb (PkClient *client, GAsyncResult *res, GpkApplicatio
goto out;
}
+ /* get data */
+ g_object_get (item,
+ "files", &files,
+ NULL);
+
/* convert to pointer array */
- array_sort = pk_strv_to_ptr_array (item->files);
+ array_sort = pk_strv_to_ptr_array (files);
g_ptr_array_sort (array_sort, (GCompareFunc) gpk_application_strcmp_indirect);
/* title */
@@ -604,8 +609,8 @@ out:
g_strfreev (files);
g_strfreev (split);
g_free (package_id_selected);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (array_sort != NULL)
@@ -890,7 +895,7 @@ gpk_application_get_requires_cb (PkClient *client, GAsyncResult *res, GpkApplica
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GPtrArray *array = NULL;
GtkWindow *window;
gchar *name = NULL;
@@ -910,15 +915,15 @@ gpk_application_get_requires_cb (PkClient *client, GAsyncResult *res, GpkApplica
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get requires: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get requires: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -969,8 +974,8 @@ out:
g_free (name);
g_free (title);
g_free (message);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1013,7 +1018,7 @@ gpk_application_get_depends_cb (PkClient *client, GAsyncResult *res, GpkApplicat
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GPtrArray *array = NULL;
GtkWindow *window;
gchar *name = NULL;
@@ -1033,15 +1038,15 @@ gpk_application_get_depends_cb (PkClient *client, GAsyncResult *res, GpkApplicat
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get depends: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get depends: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -1087,8 +1092,8 @@ gpk_application_get_depends_cb (PkClient *client, GAsyncResult *res, GpkApplicat
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (GTK_WIDGET (dialog));
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1250,10 +1255,10 @@ gpk_application_text_format_display (GpkApplication *application, const gchar *a
* gpk_application_add_item_to_results:
**/
static void
-gpk_application_add_item_to_results (GpkApplication *application, const PkItemPackage *item)
+gpk_application_add_item_to_results (GpkApplication *application, PkPackage *item)
{
GtkTreeIter iter;
- gchar *summary;
+ gchar *summary_markup;
const gchar *icon = NULL;
gchar *text;
gboolean in_queue;
@@ -1263,17 +1268,27 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
PkBitfield state = 0;
static guint package_cnt = 0;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
+
+ /* get data */
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
/* format if required */
egg_markdown_set_output (application->priv->markdown, EGG_MARKDOWN_OUTPUT_PANGO);
- summary = egg_markdown_parse (application->priv->markdown, item->summary);
+ summary_markup = egg_markdown_parse (application->priv->markdown, summary);
/* mark as got so we don't warn */
application->priv->has_package = TRUE;
/* are we in the package array? */
- in_queue = (pk_package_sack_find_by_id (application->priv->package_sack, item->package_id) != NULL);
- installed = (item->info == PK_INFO_ENUM_INSTALLED) || (item->info == PK_INFO_ENUM_COLLECTION_INSTALLED);
+ in_queue = (pk_package_sack_find_by_id (application->priv->package_sack, package_id) != NULL);
+ installed = (info == PK_INFO_ENUM_INSTALLED) || (info == PK_INFO_ENUM_COLLECTION_INSTALLED);
if (installed)
pk_bitfield_add (state, GPK_STATE_INSTALLED);
@@ -1281,11 +1296,11 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
pk_bitfield_add (state, GPK_STATE_IN_LIST);
/* special icon */
- if (item->info == PK_INFO_ENUM_COLLECTION_INSTALLED || item->info == PK_INFO_ENUM_COLLECTION_AVAILABLE)
+ if (info == PK_INFO_ENUM_COLLECTION_INSTALLED || info == PK_INFO_ENUM_COLLECTION_AVAILABLE)
pk_bitfield_add (state, GPK_STATE_COLLECTION);
/* use the application icon if available */
- split = pk_package_id_split (item->package_id);
+ split = pk_package_id_split (package_id);
icon = gpk_desktop_guess_icon_name (application->priv->desktop, split[PK_PACKAGE_ID_NAME]);
g_strfreev (split);
if (icon == NULL)
@@ -1294,7 +1309,7 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
checkbox = gpk_application_state_get_checkbox (state);
/* use two lines */
- text = gpk_package_id_format_twoline (item->package_id, summary);
+ text = gpk_package_id_format_twoline (package_id, summary_markup);
/* can we modify this? */
enabled = gpk_application_get_checkbox_enable (application, state);
@@ -1305,8 +1320,8 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
PACKAGES_COLUMN_CHECKBOX, checkbox,
PACKAGES_COLUMN_CHECKBOX_VISIBLE, enabled,
PACKAGES_COLUMN_TEXT, text,
- PACKAGES_COLUMN_SUMMARY, item->summary,
- PACKAGES_COLUMN_ID, item->package_id,
+ PACKAGES_COLUMN_SUMMARY, summary,
+ PACKAGES_COLUMN_ID, package_id,
PACKAGES_COLUMN_IMAGE, icon,
-1);
@@ -1316,6 +1331,8 @@ gpk_application_add_item_to_results (GpkApplication *application, const PkItemPa
gtk_main_iteration ();
}
+ g_free (package_id);
+ g_free (summary_markup);
g_free (summary);
g_free (text);
}
@@ -1432,17 +1449,24 @@ gpk_application_run_installed (GpkApplication *application, PkResults *results)
{
guint i;
GPtrArray *array;
- const PkItemPackage *item;
+ PkPackage *item;
GPtrArray *package_ids_array;
gchar **package_ids = NULL;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
/* get the package array and filter on INSTALLED */
package_ids_array = g_ptr_array_new_with_free_func (g_free);
array = pk_results_get_package_array (results);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item->info == PK_INFO_ENUM_INSTALLING)
- g_ptr_array_add (package_ids_array, g_strdup (item->package_id));
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ NULL);
+ if (info == PK_INFO_ENUM_INSTALLING)
+ g_ptr_array_add (package_ids_array, g_strdup (package_id));
+ g_free (package_id);
}
/* nothing to show */
@@ -1498,9 +1522,9 @@ gpk_application_search_cb (PkClient *client, GAsyncResult *res, GpkApplication *
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GPtrArray *array = NULL;
- PkItemPackage *item;
+ PkPackage *item;
guint i;
GtkWidget *widget;
GtkWindow *window;
@@ -1514,15 +1538,15 @@ gpk_application_search_cb (PkClient *client, GAsyncResult *res, GpkApplication *
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to search: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to search: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -1558,8 +1582,8 @@ gpk_application_search_cb (PkClient *client, GAsyncResult *res, GpkApplication *
gtk_widget_set_sensitive (widget, TRUE);
gpk_application_set_buttons_apply_clear (application);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1675,11 +1699,7 @@ gpk_application_populate_selected (GpkApplication *application)
{
guint i;
guint len;
- PkItemPackage *item;
PkPackage *package;
- PkInfoEnum info;
- const gchar *package_id;
- gchar *summary;
/* get size */
len = pk_package_sack_get_size (application->priv->package_sack);
@@ -1693,15 +1713,7 @@ gpk_application_populate_selected (GpkApplication *application)
/* dump queue to package window */
for (i=0; i<len; i++) {
package = pk_package_sack_get_index (application->priv->package_sack, i);
- package_id = pk_package_get_id (package);
- g_object_get (package,
- "info", &info,
- "summary", &summary,
- NULL);
- item = pk_item_package_new (info, package_id, summary);
- gpk_application_add_item_to_results (application, item);
- pk_item_package_unref (item);
- g_free (summary);
+ gpk_application_add_item_to_results (application, package);
}
out:
return TRUE;
@@ -1954,7 +1966,7 @@ gpk_application_install_packages_cb (PkTask *task, GAsyncResult *res, GpkApplica
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
/* get the results */
@@ -1966,15 +1978,15 @@ gpk_application_install_packages_cb (PkTask *task, GAsyncResult *res, GpkApplica
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to install packages: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to install packages: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -1990,8 +2002,8 @@ gpk_application_install_packages_cb (PkTask *task, GAsyncResult *res, GpkApplica
application->priv->action = PK_ACTION_NONE;
gpk_application_set_buttons_apply_clear (application);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -2004,7 +2016,7 @@ gpk_application_remove_packages_cb (PkTask *task, GAsyncResult *res, GpkApplicat
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
/* get the results */
@@ -2016,15 +2028,15 @@ gpk_application_remove_packages_cb (PkTask *task, GAsyncResult *res, GpkApplicat
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to remove packages: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to remove packages: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -2037,8 +2049,8 @@ gpk_application_remove_packages_cb (PkTask *task, GAsyncResult *res, GpkApplicat
application->priv->action = PK_ACTION_NONE;
gpk_application_set_buttons_apply_clear (application);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -2201,17 +2213,23 @@ gpk_application_get_details_cb (PkClient *client, GAsyncResult *res, GpkApplicat
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GPtrArray *array = NULL;
- PkItemDetails *item;
+ PkDetails *item;
GtkWidget *widget;
gchar *text;
gchar *value;
const gchar *repo_name;
- const gchar *group;
+ const gchar *group_text;
gboolean installed;
gchar **split = NULL;
GtkWindow *window;
+ gchar *package_id = NULL;
+ gchar *url = NULL;
+ PkGroupEnum group;
+ gchar *license = NULL;
+ gchar *description = NULL;
+ guint64 size;
g_return_if_fail (GPK_IS_APPLICATION (application));
@@ -2224,15 +2242,15 @@ gpk_application_get_details_cb (PkClient *client, GAsyncResult *res, GpkApplicat
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get cats: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get details: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -2253,7 +2271,17 @@ gpk_application_get_details_cb (PkClient *client, GAsyncResult *res, GpkApplicat
gtk_list_store_clear (application->priv->details_store);
- split = pk_package_id_split (item->package_id);
+ /* get data */
+ g_object_get (item,
+ "package-id", &package_id,
+ "url", &url,
+ "group", &group,
+ "license", &license,
+ "description", &description,
+ "size", &size,
+ NULL);
+
+ split = pk_package_id_split (package_id);
installed = g_strcmp0 (split[PK_PACKAGE_ID_DATA], "installed") == 0;
/* if a collection, mark as such */
@@ -2263,36 +2291,36 @@ gpk_application_get_details_cb (PkClient *client, GAsyncResult *res, GpkApplicat
/* homepage */
widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "menuitem_homepage"));
- if (egg_strzero (item->url) == FALSE) {
+ if (egg_strzero (url) == FALSE) {
gtk_widget_set_sensitive (widget, TRUE);
/* TRANSLATORS: tooltip: go to the web address */
- text = g_strdup_printf (_("Visit %s"), item->url);
+ text = g_strdup_printf (_("Visit %s"), url);
gtk_widget_set_tooltip_text (widget, text);
g_free (text);
/* TRANSLATORS: add an entry to go to the project home page */
- gpk_application_add_detail_item (application, _("Project"), _("Homepage"), item->url);
+ gpk_application_add_detail_item (application, _("Project"), _("Homepage"), url);
/* save the url for the button */
g_free (application->priv->url);
- application->priv->url = g_strdup (item->url);
+ application->priv->url = g_strdup (url);
} else {
gtk_widget_set_sensitive (widget, FALSE);
}
/* group */
- if (item->group != PK_GROUP_ENUM_UNKNOWN) {
- group = gpk_group_enum_to_localised_text (item->group);
+ if (group != PK_GROUP_ENUM_UNKNOWN) {
+ group_text = gpk_group_enum_to_localised_text (group);
/* TRANSLATORS: the group the package belongs in */
- gpk_application_add_detail_item (application, _("Group"), group, NULL);
+ gpk_application_add_detail_item (application, _("Group"), group_text, NULL);
}
/* group */
- if (!egg_strzero (item->license)) {
+ if (!egg_strzero (license)) {
/* TRANSLATORS: the licence string for the package */
- gpk_application_add_detail_item (application, _("License"), item->license, NULL);
+ gpk_application_add_detail_item (application, _("License"), license, NULL);
}
/* menu path */
@@ -2308,15 +2336,15 @@ gpk_application_get_details_cb (PkClient *client, GAsyncResult *res, GpkApplicat
g_free (value);
/* set the description */
- text = gpk_application_text_format_display (application, item->description);
+ text = gpk_application_text_format_display (application, description);
widget = GTK_WIDGET (gtk_builder_get_object (application->priv->builder, "textview_description"));
gpk_application_set_text_buffer (widget, text);
g_free (text);
/* if non-zero, set the size */
- if (item->size > 0) {
+ if (size > 0) {
/* set the size */
- value = g_format_size_for_display (item->size);
+ value = g_format_size_for_display (size);
if (g_strcmp0 (split[PK_PACKAGE_ID_DATA], "meta") == 0)
/* TRANSLATORS: the size of the meta package */
gpk_application_add_detail_item (application, _("Size"), value, NULL);
@@ -2337,9 +2365,13 @@ gpk_application_get_details_cb (PkClient *client, GAsyncResult *res, GpkApplicat
gpk_application_add_detail_item (application, _("Source"), repo_name, NULL);
}
out:
+ g_free (package_id);
+ g_free (url);
+ g_free (license);
+ g_free (description);
g_strfreev (split);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -2813,7 +2845,7 @@ gpk_application_refresh_cache_cb (PkClient *client, GAsyncResult *res, GpkApplic
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
/* get the results */
@@ -2825,21 +2857,21 @@ gpk_application_refresh_cache_cb (PkClient *client, GAsyncResult *res, GpkApplic
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to refresh: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to refresh: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -3261,15 +3293,25 @@ gpk_application_get_categories_cb (PkClient *client, GAsyncResult *res, GpkAppli
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GPtrArray *array = NULL;
GtkTreeIter iter;
GtkTreeIter iter2;
guint i, j;
GtkTreeView *treeview;
- PkItemCategory *item;
- PkItemCategory *item2;
+ PkCategory *item;
+ PkCategory *item2;
GtkWindow *window;
+ gchar *package_id = NULL;
+ gchar *name = NULL;
+ gchar *summary = NULL;
+ gchar *cat_id = NULL;
+ gchar *icon = NULL;
+ gchar *parent_id_tmp = NULL;
+ gchar *name_tmp = NULL;
+ gchar *summary_tmp = NULL;
+ gchar *cat_id_tmp = NULL;
+ gchar *icon_tmp = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -3280,15 +3322,15 @@ gpk_application_get_categories_cb (PkClient *client, GAsyncResult *res, GpkAppli
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get cats: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get cats: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -3302,39 +3344,63 @@ gpk_application_get_categories_cb (PkClient *client, GAsyncResult *res, GpkAppli
array = pk_results_get_category_array (results);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
+ g_object_get (item,
+ "name", &name,
+ "summary", &summary,
+ "cat-id", &cat_id,
+ "icon", &icon,
+ NULL);
gtk_tree_store_append (application->priv->groups_store, &iter, NULL);
gtk_tree_store_set (application->priv->groups_store, &iter,
- GROUPS_COLUMN_NAME, item->name,
- GROUPS_COLUMN_SUMMARY, item->summary,
- GROUPS_COLUMN_ID, item->cat_id,
- GROUPS_COLUMN_ICON, item->icon,
+ GROUPS_COLUMN_NAME, name,
+ GROUPS_COLUMN_SUMMARY, summary,
+ GROUPS_COLUMN_ID, cat_id,
+ GROUPS_COLUMN_ICON, icon,
GROUPS_COLUMN_ACTIVE, FALSE,
-1);
j = 0;
do {
/* only allows groups two layers deep */
item2 = g_ptr_array_index (array, j);
- if (g_strcmp0 (item2->parent_id, item->cat_id) == 0) {
+ g_object_get (item2,
+ "parent-id", &parent_id_tmp,
+ "cat-id", &cat_id_tmp,
+ "name", &name_tmp,
+ "summary", &summary_tmp,
+ "icon", &icon_tmp,
+ NULL);
+ if (g_strcmp0 (parent_id_tmp, cat_id) == 0) {
gtk_tree_store_append (application->priv->groups_store, &iter2, &iter);
gtk_tree_store_set (application->priv->groups_store, &iter2,
- GROUPS_COLUMN_NAME, item2->name,
- GROUPS_COLUMN_SUMMARY, item2->summary,
- GROUPS_COLUMN_ID, item2->cat_id,
- GROUPS_COLUMN_ICON, item2->icon,
+ GROUPS_COLUMN_NAME, name_tmp,
+ GROUPS_COLUMN_SUMMARY, summary_tmp,
+ GROUPS_COLUMN_ID, cat_id_tmp,
+ GROUPS_COLUMN_ICON, icon_tmp,
GROUPS_COLUMN_ACTIVE, TRUE,
-1);
g_ptr_array_remove (array, item2);
} else
j++;
+ g_free (parent_id_tmp);
+ g_free (name_tmp);
+ g_free (summary_tmp);
+ g_free (cat_id_tmp);
+ g_free (icon_tmp);
} while (j < array->len);
+
+ g_free (package_id);
+ g_free (name);
+ g_free (summary);
+ g_free (cat_id);
+ g_free (icon);
}
/* open all expanders */
gtk_tree_view_collapse_all (treeview);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -3572,11 +3638,13 @@ gpk_application_get_repo_list_cb (PkClient *client, GAsyncResult *res, GpkApplic
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GPtrArray *array = NULL;
- PkItemRepoDetail *item;
+ PkRepoDetail *item;
guint i;
GtkWindow *window;
+ gchar *repo_id = NULL;
+ gchar *description = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -3587,15 +3655,15 @@ gpk_application_get_repo_list_cb (PkClient *client, GAsyncResult *res, GpkApplic
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to repo list: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to repo list: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* if obvious message, don't tell the user */
- if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
window = GTK_WINDOW (gtk_builder_get_object (application->priv->builder, "window_manager"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -3604,16 +3672,22 @@ gpk_application_get_repo_list_cb (PkClient *client, GAsyncResult *res, GpkApplic
array = pk_results_get_repo_detail_array (results);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- egg_debug ("repo = %s:%s", item->repo_id, item->description);
+ g_object_get (item,
+ "repo-id", &repo_id,
+ "description", &description,
+ NULL);
+
+ egg_debug ("repo = %s:%s", repo_id, description);
/* no problem, just no point adding as we will fallback to the repo_id */
- if (item->description == NULL)
- continue;
- g_hash_table_insert (application->priv->repos, g_strdup (item->repo_id), g_strdup (item->description));
+ if (description != NULL)
+ g_hash_table_insert (application->priv->repos, g_strdup (repo_id), g_strdup (description));
+ g_free (repo_id);
+ g_free (description);
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
diff --git a/src/gpk-check-update.c b/src/gpk-check-update.c
index 455b81f..e9ea44b 100644
--- a/src/gpk-check-update.c
+++ b/src/gpk-check-update.c
@@ -350,11 +350,15 @@ gpk_check_update_finished_notify (GpkCheckUpdate *cupdate, PkResults *results)
PkRestartEnum restart;
guint i;
GPtrArray *array;
- const PkItemPackage *item;
+ PkPackage *item;
GString *message_text = NULL;
guint skipped_number = 0;
const gchar *message;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
+
/* check we got some packages */
array = pk_results_get_package_array (results);
@@ -369,15 +373,22 @@ gpk_check_update_finished_notify (GpkCheckUpdate *cupdate, PkResults *results)
/* find any we skipped */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
- split = pk_package_id_split (item->package_id);
- egg_debug ("%s, %s, %s", pk_info_enum_to_text (item->info),
- split[PK_PACKAGE_ID_NAME], item->summary);
- if (item->info == PK_INFO_ENUM_BLOCKED) {
+ split = pk_package_id_split (package_id);
+ egg_debug ("%s, %s, %s", pk_info_enum_to_text (info),
+ split[PK_PACKAGE_ID_NAME], summary);
+ if (info == PK_INFO_ENUM_BLOCKED) {
skipped_number++;
g_string_append_printf (message_text, "<b>%s</b> - %s\n",
- split[PK_PACKAGE_ID_NAME], item->summary);
+ split[PK_PACKAGE_ID_NAME], summary);
}
+ g_free (package_id);
+ g_free (summary);
g_strfreev (split);
}
@@ -452,7 +463,7 @@ gpk_check_update_update_system_finished_cb (PkTask *task, GAsyncResult *res, Gpk
{
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_task_generic_finish (task, res, &error);
@@ -467,15 +478,15 @@ gpk_check_update_update_system_finished_cb (PkTask *task, GAsyncResult *res, Gpk
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to update system: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to update system: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* ignore some errors */
- if (error_item->code != PK_ERROR_ENUM_PROCESS_KILL &&
- error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED &&
- error_item->code != PK_ERROR_ENUM_CANNOT_GET_LOCK) {
- gpk_error_dialog (gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_PROCESS_KILL &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_CANNOT_GET_LOCK) {
+ gpk_error_dialog (gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -493,8 +504,8 @@ gpk_check_update_update_system_finished_cb (PkTask *task, GAsyncResult *res, Gpk
gpk_check_update_finished_notify (cupdate, results);
cupdate->priv->number_updates_critical_last_shown = 0;
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -683,8 +694,10 @@ gpk_check_update_client_info_to_bitfield (GpkCheckUpdate *cupdate, GPtrArray *ar
{
guint i;
PkBitfield infos = 0;
- const PkItemPackage *item;
+ PkPackage *item;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
g_return_val_if_fail (GPK_IS_CHECK_UPDATE (cupdate), PK_INFO_ENUM_UNKNOWN);
@@ -695,14 +708,15 @@ gpk_check_update_client_info_to_bitfield (GpkCheckUpdate *cupdate, GPtrArray *ar
/* add each status to a array */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item == NULL) {
- egg_warning ("not found item %i", i);
- break;
- }
- split = pk_package_id_split (item->package_id);
- egg_debug ("%s %s", split[PK_PACKAGE_ID_NAME], pk_info_enum_to_text (item->info));
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ NULL);
+ split = pk_package_id_split (package_id);
+ egg_debug ("%s %s", split[PK_PACKAGE_ID_NAME], pk_info_enum_to_text (info));
g_strfreev (split);
- pk_bitfield_add (infos, item->info);
+ pk_bitfield_add (infos, info);
+ g_free (package_id);
}
return infos;
}
@@ -862,7 +876,7 @@ gpk_check_update_get_updates_finished_cb (GObject *object, GAsyncResult *res, Gp
PkClient *client = PK_CLIENT(object);
PkResults *results;
GError *error = NULL;
- const PkItemPackage *item;
+ PkPackage *item;
guint i;
guint more;
guint showing = 0;
@@ -875,7 +889,10 @@ gpk_check_update_get_updates_finished_cb (GObject *object, GAsyncResult *res, Gp
gchar **package_ids;
gchar **split;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
/* get the results */
results = pk_client_generic_finish (PK_CLIENT(client), res, &error);
@@ -886,15 +903,15 @@ gpk_check_update_get_updates_finished_cb (GObject *object, GAsyncResult *res, Gp
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get updates: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get updates: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* ignore some errors */
- if (error_item->code != PK_ERROR_ENUM_PROCESS_KILL &&
- error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED &&
- error_item->code != PK_ERROR_ENUM_CANNOT_GET_LOCK) {
- gpk_error_dialog (gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_PROCESS_KILL &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_CANNOT_GET_LOCK) {
+ gpk_error_dialog (gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -920,21 +937,35 @@ gpk_check_update_get_updates_finished_cb (GObject *object, GAsyncResult *res, Gp
/* find the security updates first */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item->info == PK_INFO_ENUM_SECURITY) {
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ NULL);
+ if (info == PK_INFO_ENUM_SECURITY) {
/* add to array */
- g_ptr_array_add (security_array, g_strdup (item->package_id));
+ g_ptr_array_add (security_array, g_strdup (package_id));
}
+ g_free (package_id);
}
/* get the security update text */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item->info != PK_INFO_ENUM_SECURITY)
+ g_object_get (item,
+ "info", &info,
+ NULL);
+ if (info != PK_INFO_ENUM_SECURITY)
continue;
+ /* get more data */
+ g_object_get (item,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+
/* don't use a huge notification that won't fit on the screen */
- split = pk_package_id_split (item->package_id);
- g_string_append_printf (status_security, "<b>%s</b> - %s\n", split[PK_PACKAGE_ID_NAME], item->summary);
+ split = pk_package_id_split (package_id);
+ g_string_append_printf (status_security, "<b>%s</b> - %s\n", split[PK_PACKAGE_ID_NAME], summary);
g_strfreev (split);
if (++showing == GPK_CHECK_UPDATE_MAX_NUMBER_SECURITY_ENTRIES) {
more = security_array->len - showing;
@@ -946,6 +977,8 @@ gpk_check_update_get_updates_finished_cb (GObject *object, GAsyncResult *res, Gp
}
break;
}
+ g_free (package_id);
+ g_free (summary);
}
/* work out icon (cannot be NULL) */
@@ -1044,8 +1077,8 @@ gpk_check_update_get_updates_finished_cb (GObject *object, GAsyncResult *res, Gp
/* shouldn't happen */
egg_warning ("unknown update mode");
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (status_security != NULL)
g_string_free (status_security, TRUE);
if (status_tooltip != NULL)
@@ -1208,7 +1241,7 @@ gpk_check_update_refresh_cache_finished_cb (GObject *object, GAsyncResult *res,
PkClient *client = PK_CLIENT(object);
PkResults *results;
GError *error = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_client_generic_finish (PK_CLIENT(client), res, &error);
@@ -1219,20 +1252,20 @@ gpk_check_update_refresh_cache_finished_cb (GObject *object, GAsyncResult *res,
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to refresh the cache: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to refresh the cache: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* ignore some errors */
- if (error_item->code != PK_ERROR_ENUM_PROCESS_KILL &&
- error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
- gpk_error_dialog (gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_PROCESS_KILL &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ gpk_error_dialog (gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -1274,11 +1307,13 @@ gpk_check_update_get_distro_upgrades_finished_cb (GObject *object, GAsyncResult
GPtrArray *array = NULL;
gboolean ret;
guint i;
- PkItemDistroUpgrade *item;
+ PkDistroUpgrade *item;
const gchar *title;
NotifyNotification *notification;
GString *string = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
+ gchar *name = NULL;
+ PkUpdateStateEnum state;
/* get the results */
results = pk_client_generic_finish (PK_CLIENT(client), res, &error);
@@ -1289,14 +1324,14 @@ gpk_check_update_get_distro_upgrades_finished_cb (GObject *object, GAsyncResult
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get upgrades: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get upgrades: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* ignore some errors */
- if (error_item->code != PK_ERROR_ENUM_PROCESS_KILL &&
- error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
- gpk_error_dialog (gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_PROCESS_KILL &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ gpk_error_dialog (gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -1320,8 +1355,13 @@ gpk_check_update_get_distro_upgrades_finished_cb (GObject *object, GAsyncResult
/* find the upgrade string */
string = g_string_new ("");
for (i=0; i < array->len; i++) {
- item = (PkItemDistroUpgrade *) g_ptr_array_index (array, i);
- g_string_append_printf (string, "%s (%s)\n", item->name, pk_distro_upgrade_enum_to_text (item->state));
+ item = (PkDistroUpgrade *) g_ptr_array_index (array, i);
+ g_object_get (item,
+ "name", &name,
+ "state", &state,
+ NULL);
+ g_string_append_printf (string, "%s (%s)\n", name, pk_distro_upgrade_enum_to_text (state));
+ g_free (name);
}
if (string->len != 0)
g_string_set_size (string, string->len-1);
@@ -1347,8 +1387,8 @@ gpk_check_update_get_distro_upgrades_finished_cb (GObject *object, GAsyncResult
g_error_free (error);
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (string != NULL)
diff --git a/src/gpk-common.c b/src/gpk-common.c
index c713c6f..8cda255 100644
--- a/src/gpk-common.c
+++ b/src/gpk-common.c
@@ -53,14 +53,14 @@ static gboolean small_form_factor_mode = FALSE;
gchar **
pk_package_array_to_strv (GPtrArray *array)
{
- const PkItemPackage *item;
+ PkPackage *item;
gchar **results;
guint i;
results = g_new0 (gchar *, array->len+1);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- results[i] = g_strdup (item->package_id);
+ results[i] = g_strdup (pk_package_get_id (item));
}
return results;
}
@@ -609,7 +609,7 @@ gpk_package_entry_completion_get_names_from_file (const gchar *filename)
gchar **lines = NULL;
guint i;
gchar **split;
- PkItemPackage *item;
+ PkPackage *item;
/* get data */
ret = g_file_get_contents (filename, &data, NULL, &error);
@@ -619,8 +619,8 @@ gpk_package_entry_completion_get_names_from_file (const gchar *filename)
goto out;
}
- /* create array of PkItemPackage's */
- array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
+ /* create array of PkPackage's */
+ array = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
/* split */
lines = g_strsplit (data, "\n", -1);
@@ -628,9 +628,12 @@ gpk_package_entry_completion_get_names_from_file (const gchar *filename)
split = g_strsplit (lines[i], "\t", 3);
if (g_strv_length (split) != 3)
continue;
- item = pk_item_package_new (pk_info_enum_from_text (split[PK_PACKAGE_ID_NAME]),
- split[PK_PACKAGE_ID_VERSION],
- split[PK_PACKAGE_ID_ARCH]);
+ item = pk_package_new ();
+ g_object_set (item,
+ "info", pk_info_enum_from_text (split[0]),
+ "package-id", split[1],
+ "summary", split[2],
+ NULL);
g_ptr_array_add (array, item);
g_strfreev (split);
}
@@ -650,7 +653,7 @@ gpk_package_entry_completion_model_new (void)
{
GPtrArray *list;
guint i;
- const PkItemPackage *item;
+ PkPackage *item;
GHashTable *hash;
gpointer data;
GtkListStore *store;
@@ -668,12 +671,12 @@ gpk_package_entry_completion_model_new (void)
egg_debug ("loading %i autocomplete items", list->len);
for (i=0; i<list->len; i++) {
item = g_ptr_array_index (list, i);
- if (item == NULL || item->package_id == NULL) {
+ if (item == NULL || pk_package_get_id (item) == NULL) {
egg_warning ("item invalid!");
break;
}
- split = pk_package_id_split (item->package_id);
+ split = pk_package_id_split (pk_package_get_id (item));
data = g_hash_table_lookup (hash, (gpointer) split[PK_PACKAGE_ID_NAME]);
if (data == NULL) {
/* append just the name */
diff --git a/src/gpk-dbus-task.c b/src/gpk-dbus-task.c
index 6f59a80..b3ad1e9 100644
--- a/src/gpk-dbus-task.c
+++ b/src/gpk-dbus-task.c
@@ -85,7 +85,7 @@ struct _GpkDbusTaskPrivate
guint timestamp;
gchar *parent_title;
gchar *parent_icon_name;
- PkItemErrorCode *cached_error_code;
+ PkError *cached_error_code;
gint timeout;
GpkHelperRun *helper_run;
GpkHelperChooser *helper_chooser;
@@ -214,7 +214,7 @@ gpk_dbus_task_libnotify_cb (NotifyNotification *notification, gchar *action, gpo
return;
}
if (g_strcmp0 (action, "show-error-details") == 0) {
- details = g_markup_escape_text (task->priv->cached_error_code->details, -1);
+ details = g_markup_escape_text (pk_error_get_details (task->priv->cached_error_code), -1);
/* TRANSLATORS: detailed text about the error */
gpk_error_dialog (_("Error details"), _("Package Manager error details"), details);
g_free (details);
@@ -282,7 +282,7 @@ gpk_dbus_task_error_msg (GpkDbusTask *dtask, const gchar *title, GError *error)
* gpk_dbus_task_handle_error:
**/
static void
-gpk_dbus_task_handle_error (GpkDbusTask *dtask, PkItemErrorCode *error_item)
+gpk_dbus_task_handle_error (GpkDbusTask *dtask, PkError *error_code)
{
gboolean ret;
GError *error = NULL;
@@ -292,27 +292,27 @@ gpk_dbus_task_handle_error (GpkDbusTask *dtask, PkItemErrorCode *error_item)
GtkWidget *widget;
/* ignore some errors */
- if (error_item->code == PK_ERROR_ENUM_NO_LICENSE_AGREEMENT ||
- error_item->code == PK_ERROR_ENUM_PROCESS_KILL ||
- error_item->code == PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
- egg_warning ("ignoring %s", pk_error_enum_to_text (error_item->code));
+ if (pk_error_get_code (error_code) == PK_ERROR_ENUM_NO_LICENSE_AGREEMENT ||
+ pk_error_get_code (error_code) == PK_ERROR_ENUM_PROCESS_KILL ||
+ pk_error_get_code (error_code) == PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ egg_warning ("ignoring %s", pk_error_enum_to_text (pk_error_get_code (error_code)));
}
- egg_debug ("code was %s", pk_error_enum_to_text (error_item->code));
+ egg_debug ("code was %s", pk_error_enum_to_text (pk_error_get_code (error_code)));
/* use a modal dialog if showing progress, else use libnotify */
- title = gpk_error_enum_to_localised_text (error_item->code);
- message = gpk_error_enum_to_localised_message (error_item->code);
+ title = gpk_error_enum_to_localised_text (pk_error_get_code (error_code));
+ message = gpk_error_enum_to_localised_message (pk_error_get_code (error_code));
if (dtask->priv->show_progress) {
widget = GTK_WIDGET (gpk_modal_dialog_get_window (dtask->priv->dialog));
- gpk_error_dialog_modal (GTK_WINDOW (widget), title, message, error_item->details);
+ gpk_error_dialog_modal (GTK_WINDOW (widget), title, message, pk_error_get_details (error_code));
return;
}
/* save this globally */
if (dtask->priv->cached_error_code != NULL)
- pk_item_error_code_unref (dtask->priv->cached_error_code);
- dtask->priv->cached_error_code = pk_item_error_code_ref (error_item);
+ g_object_unref (dtask->priv->cached_error_code);
+ dtask->priv->cached_error_code = g_object_ref (error_code);
/* do the bubble */
notification = notify_notification_new (title, message, "help-browser", NULL);
@@ -337,7 +337,7 @@ gpk_dbus_task_install_packages_cb (PkTask *task, GAsyncResult *res, GpkDbusTask
GError *error = NULL;
GError *error_dbus = NULL;
PkResults *results = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_task_generic_finish (task, res, &error);
@@ -351,12 +351,12 @@ gpk_dbus_task_install_packages_cb (PkTask *task, GAsyncResult *res, GpkDbusTask
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to install package: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "%s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to install package: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "%s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
- gpk_dbus_task_handle_error (dtask, error_item);
+ gpk_dbus_task_handle_error (dtask, error_code);
goto out;
}
@@ -364,8 +364,8 @@ gpk_dbus_task_install_packages_cb (PkTask *task, GAsyncResult *res, GpkDbusTask
egg_debug ("doing async return");
dbus_g_method_return (dtask->priv->context, TRUE);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -470,7 +470,7 @@ gpk_dbus_task_install_files_cb (PkTask *task, GAsyncResult *res, GpkDbusTask *dt
PkResults *results = NULL;
guint length;
const gchar *title;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_task_generic_finish (task, res, &error);
@@ -486,17 +486,17 @@ gpk_dbus_task_install_files_cb (PkTask *task, GAsyncResult *res, GpkDbusTask *dt
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to install file: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- gpk_dbus_task_handle_error (dtask, error_item);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to install file: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ gpk_dbus_task_handle_error (dtask, error_code);
error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "%s", error->message);
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -679,7 +679,7 @@ gpk_dbus_task_is_installed_resolve_cb (PkClient *client, GAsyncResult *res, GpkD
PkResults *results = NULL;
GPtrArray *array = NULL;
gboolean ret;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -692,10 +692,10 @@ gpk_dbus_task_is_installed_resolve_cb (PkClient *client, GAsyncResult *res, GpkD
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -706,8 +706,8 @@ gpk_dbus_task_is_installed_resolve_cb (PkClient *client, GAsyncResult *res, GpkD
egg_debug ("doing async return");
dbus_g_method_return (dtask->priv->context, ret);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -740,9 +740,11 @@ gpk_dbus_task_search_file_search_file_cb (PkClient *client, GAsyncResult *res, G
GError *error_dbus = NULL;
PkResults *results = NULL;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
gchar **split = NULL;
- const PkItemPackage *item;
+ PkPackage *item;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -755,10 +757,10 @@ gpk_dbus_task_search_file_search_file_cb (PkClient *client, GAsyncResult *res, G
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to search file: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to search file: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -774,14 +776,19 @@ gpk_dbus_task_search_file_search_file_cb (PkClient *client, GAsyncResult *res, G
/* get first item */
item = g_ptr_array_index (array, 0);
- split = pk_package_id_split (item->package_id);
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ NULL);
+ split = pk_package_id_split (package_id);
egg_debug ("doing async return");
- dbus_g_method_return (dtask->priv->context, (item->info == PK_INFO_ENUM_INSTALLED), split[PK_PACKAGE_ID_NAME]);
+ dbus_g_method_return (dtask->priv->context, (info == PK_INFO_ENUM_INSTALLED), split[PK_PACKAGE_ID_NAME]);
out:
+ g_free (package_id);
g_strfreev (split);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -871,14 +878,16 @@ gpk_dbus_task_install_package_names_resolve_cb (PkTask *task, GAsyncResult *res,
GError *error_dbus = NULL;
PkResults *results = NULL;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
- const gchar *package_id = NULL;
+ PkError *error_code = NULL;
+ gchar *package_id = NULL;
gchar *title;
gchar *info_url;
- PkItemPackage *item;
+ PkPackage *item;
GtkResponseType button;
guint i;
gboolean already_installed = FALSE;
+ PkInfoEnum info;
+ gchar *package_id_tmp = NULL;
/* get the results */
results = pk_task_generic_finish (task, res, &error);
@@ -891,10 +900,10 @@ gpk_dbus_task_install_package_names_resolve_cb (PkTask *task, GAsyncResult *res,
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -932,13 +941,18 @@ gpk_dbus_task_install_package_names_resolve_cb (PkTask *task, GAsyncResult *res,
/* see what we've got already */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item->info == PK_INFO_ENUM_INSTALLED) {
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id_tmp,
+ NULL);
+ if (info == PK_INFO_ENUM_INSTALLED) {
already_installed = TRUE;
- } else if (item->info == PK_INFO_ENUM_AVAILABLE) {
- egg_debug ("package '%s' resolved", item->package_id);
- package_id = item->package_id;
+ } else if (info == PK_INFO_ENUM_AVAILABLE) {
+ egg_debug ("package '%s' resolved", package_id_tmp);
+ package_id = g_strdup (package_id_tmp);
//TODO: we need to list these in a gpk-dbus_task-chooser
}
+ g_free (package_id_tmp);
}
/* already installed? */
@@ -979,8 +993,9 @@ gpk_dbus_task_install_package_names_resolve_cb (PkTask *task, GAsyncResult *res,
/* install these packages with deps */
gpk_dbus_task_install_package_ids (dtask);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ g_free (package_id);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1087,15 +1102,17 @@ gpk_dbus_task_install_provide_files_search_file_cb (PkClient *client, GAsyncResu
GError *error_dbus = NULL;
PkResults *results = NULL;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
- const gchar *package_id = NULL;
+ PkError *error_code = NULL;
gchar *info_url;
- PkItemPackage *item;
+ PkPackage *item;
GtkResponseType button;
guint i;
gboolean already_installed = FALSE;
gchar *text;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *package_id_tmp = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -1108,10 +1125,10 @@ gpk_dbus_task_install_provide_files_search_file_cb (PkClient *client, GAsyncResu
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -1149,13 +1166,18 @@ gpk_dbus_task_install_provide_files_search_file_cb (PkClient *client, GAsyncResu
/* see what we've got already */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item->info == PK_INFO_ENUM_INSTALLED) {
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id_tmp,
+ NULL);
+ if (info == PK_INFO_ENUM_INSTALLED) {
already_installed = TRUE;
- package_id = item->package_id;
- } else if (item->info == PK_INFO_ENUM_AVAILABLE) {
- egg_debug ("package '%s' resolved to:", item->package_id);
- package_id = item->package_id;
+ package_id = g_strdup (package_id_tmp);
+ } else if (info == PK_INFO_ENUM_AVAILABLE) {
+ egg_debug ("package '%s' resolved to:", package_id_tmp);
+ package_id = g_strdup (package_id_tmp);
}
+ g_free (package_id_tmp);
}
/* already installed? */
@@ -1184,8 +1206,9 @@ gpk_dbus_task_install_provide_files_search_file_cb (PkClient *client, GAsyncResu
/* install these packages with deps */
gpk_dbus_task_install_package_ids (dtask);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ g_free (package_id);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1383,7 +1406,7 @@ gpk_dbus_task_codec_what_provides_cb (PkClient *client, GAsyncResult *res, GpkDb
GError *error_dbus = NULL;
PkResults *results = NULL;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkResponseType button;
gchar *info_url;
const gchar *title;
@@ -1400,10 +1423,10 @@ gpk_dbus_task_codec_what_provides_cb (PkClient *client, GAsyncResult *res, GpkDb
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -1471,8 +1494,8 @@ skip_checks2:
dtask->priv->package_ids = pk_package_array_to_strv (array);
gpk_dbus_task_install_package_ids (dtask);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1557,7 +1580,7 @@ gpk_dbus_task_mime_what_provides_cb (PkClient *client, GAsyncResult *res, GpkDbu
GError *error_dbus = NULL;
PkResults *results = NULL;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
gchar *info_url;
GtkResponseType button;
@@ -1574,10 +1597,10 @@ gpk_dbus_task_mime_what_provides_cb (PkClient *client, GAsyncResult *res, GpkDbu
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to resolve: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -1618,8 +1641,8 @@ gpk_dbus_task_mime_what_provides_cb (PkClient *client, GAsyncResult *res, GpkDbu
egg_debug ("doing async return");
dbus_g_method_return (dtask->priv->context, TRUE);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1805,7 +1828,7 @@ gpk_dbus_task_fontconfig_what_provides_cb (PkClient *client, GAsyncResult *res,
GError *error_dbus = NULL;
PkResults *results = NULL;
GPtrArray *array = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
gchar *title;
gchar *info_url;
GtkResponseType button;
@@ -1823,11 +1846,11 @@ gpk_dbus_task_fontconfig_what_provides_cb (PkClient *client, GAsyncResult *res,
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
/* TRANSLATORS: we failed to find the package, this shouldn't happen */
-// gpk_dbus_task_error_msg (dtask, _("Failed to search for provides"), error_item->details);
- error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to search for provides: %s", error_item->details);
+// gpk_dbus_task_error_msg (dtask, _("Failed to search for provides"), pk_error_get_details (error_code));
+ error_dbus = g_error_new (GPK_DBUS_ERROR, GPK_DBUS_ERROR_INTERNAL_ERROR, "failed to search for provides: %s", pk_error_get_details (error_code));
dbus_g_method_return_error (dtask->priv->context, error_dbus);
goto out;
}
@@ -1894,8 +1917,8 @@ skip_checks:
dtask->priv->package_ids = pk_package_array_to_strv (array);
gpk_dbus_task_install_package_ids (dtask);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -2184,7 +2207,7 @@ gpk_dbus_task_get_package_for_exec (GpkDbusTask *dtask, const gchar *exec)
gchar *package = NULL;
GError *error = NULL;
GPtrArray *array = NULL;
- const PkItemPackage *item;
+ PkPackage *item;
PkResults *results = NULL;
gchar **values = NULL;
@@ -2213,7 +2236,9 @@ gpk_dbus_task_get_package_for_exec (GpkDbusTask *dtask, const gchar *exec)
/* copy name */
item = g_ptr_array_index (array, 0);
- package = g_strdup (item->package_id);
+ g_object_get (item,
+ "package-id", &package,
+ NULL);
egg_debug ("got package %s", package);
out:
g_strfreev (values);
@@ -2398,7 +2423,7 @@ gpk_dbus_task_finalize (GObject *object)
g_free (dtask->priv->parent_title);
g_free (dtask->priv->parent_icon_name);
if (dtask->priv->cached_error_code != NULL)
- pk_item_error_code_unref (dtask->priv->cached_error_code);
+ g_object_unref (dtask->priv->cached_error_code);
g_strfreev (dtask->priv->files);
g_strfreev (dtask->priv->package_ids);
g_object_unref (PK_CLIENT(dtask->priv->task));
diff --git a/src/gpk-dialog.c b/src/gpk-dialog.c
index a86e8f8..ad96a16 100644
--- a/src/gpk-dialog.c
+++ b/src/gpk-dialog.c
@@ -85,12 +85,15 @@ gpk_dialog_package_array_to_list_store (GPtrArray *array)
{
GtkListStore *store;
GtkTreeIter iter;
- const PkItemPackage *item;
+ PkPackage *item;
PkDesktop *desktop;
const gchar *icon;
gchar *text;
guint i;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
desktop = pk_desktop_new ();
store = gtk_list_store_new (GPK_DIALOG_STORE_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
@@ -98,21 +101,28 @@ gpk_dialog_package_array_to_list_store (GPtrArray *array)
/* add each well */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- text = gpk_package_id_format_twoline (item->package_id, item->summary);
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+ text = gpk_package_id_format_twoline (package_id, summary);
/* get the icon */
- split = pk_package_id_split (item->package_id);
+ split = pk_package_id_split (package_id);
icon = gpk_desktop_guess_icon_name (desktop, split[0]);
if (icon == NULL)
- icon = gpk_info_enum_to_icon_name (item->info);
+ icon = gpk_info_enum_to_icon_name (info);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
GPK_DIALOG_STORE_IMAGE, icon,
- GPK_DIALOG_STORE_ID, item->package_id,
+ GPK_DIALOG_STORE_ID, package_id,
GPK_DIALOG_STORE_TEXT, text,
-1);
g_strfreev (split);
+ g_free (package_id);
+ g_free (summary);
g_free (text);
}
@@ -173,14 +183,6 @@ gpk_dialog_embed_package_list_widget (GtkDialog *dialog, GPtrArray *array)
GtkListStore *store;
GtkWidget *widget;
const guint row_height = 48;
- PkItemPackage *item;
- guint i;
-
- /* debug */
- for (i=0; i<array->len; i++) {
- item = g_ptr_array_index (array, i);
- egg_debug ("add %s,%s", pk_info_enum_to_text (item->info), item->package_id);
- }
/* convert to a store */
store = gpk_dialog_package_array_to_list_store (array);
diff --git a/src/gpk-enum.c b/src/gpk-enum.c
index 5c9a25d..311dd3a 100644
--- a/src/gpk-enum.c
+++ b/src/gpk-enum.c
@@ -330,7 +330,7 @@ gpk_media_type_enum_to_localised_text (PkMediaTypeEnum type)
* gpk_error_enum_to_localised_text:
**/
const gchar *
-gpk_error_enum_to_localised_text (PkErrorCodeEnum code)
+gpk_error_enum_to_localised_text (PkErrorEnum code)
{
const gchar *text = NULL;
switch (code) {
@@ -521,7 +521,7 @@ gpk_error_enum_to_localised_text (PkErrorCodeEnum code)
* gpk_error_enum_to_localised_message:
**/
const gchar *
-gpk_error_enum_to_localised_message (PkErrorCodeEnum code)
+gpk_error_enum_to_localised_message (PkErrorEnum code)
{
const gchar *text = NULL;
switch (code) {
diff --git a/src/gpk-enum.h b/src/gpk-enum.h
index 0b19666..a58422f 100644
--- a/src/gpk-enum.h
+++ b/src/gpk-enum.h
@@ -83,9 +83,9 @@ const gchar *gpk_status_enum_to_icon_name (PkStatusEnum status);
const gchar *gpk_status_enum_to_animation (PkStatusEnum status);
const gchar *gpk_restart_enum_to_icon_name (PkRestartEnum restart);
const gchar *gpk_restart_enum_to_dialog_icon_name (PkRestartEnum restart);
-const gchar *gpk_error_enum_to_localised_text (PkErrorCodeEnum code)
+const gchar *gpk_error_enum_to_localised_text (PkErrorEnum code)
G_GNUC_CONST;
-const gchar *gpk_error_enum_to_localised_message (PkErrorCodeEnum code);
+const gchar *gpk_error_enum_to_localised_message (PkErrorEnum code);
const gchar *gpk_restart_enum_to_localised_text (PkRestartEnum restart)
G_GNUC_CONST;
const gchar *gpk_update_state_enum_to_localised_text (PkUpdateStateEnum state)
diff --git a/src/gpk-firmware.c b/src/gpk-firmware.c
index 4d949ef..f1e2825 100644
--- a/src/gpk-firmware.c
+++ b/src/gpk-firmware.c
@@ -356,7 +356,7 @@ gpk_firmware_install_packages_cb (GObject *object, GAsyncResult *res, GpkFirmwar
const GpkFirmwareRequest *req;
gboolean ret;
guint i;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -367,16 +367,16 @@ gpk_firmware_install_packages_cb (GObject *object, GAsyncResult *res, GpkFirmwar
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to install file: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to install file: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* ignore some errors */
- if (error_item->code != PK_ERROR_ENUM_PROCESS_KILL &&
- error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED &&
- error_item->code != PK_ERROR_ENUM_NOT_AUTHORIZED) {
- gpk_error_dialog (gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ if (pk_error_get_code (error_code) != PK_ERROR_ENUM_PROCESS_KILL &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_TRANSACTION_CANCELLED &&
+ pk_error_get_code (error_code) != PK_ERROR_ENUM_NOT_AUTHORIZED) {
+ gpk_error_dialog (gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
}
goto out;
}
@@ -411,8 +411,8 @@ gpk_firmware_install_packages_cb (GObject *object, GAsyncResult *res, GpkFirmwar
/* clear array */
g_ptr_array_set_size (firmware->priv->array_requested, 0);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -490,17 +490,17 @@ out:
* @firmware: This class instance
* @filename: Firmware to search for
**/
-static PkItemPackage *
+static PkPackage *
gpk_firmware_check_available (GpkFirmware *firmware, const gchar *filename)
{
guint length = 0;
GPtrArray *array = NULL;
GError *error = NULL;
- PkItemPackage *item = NULL;
+ PkPackage *item = NULL;
PkBitfield filter;
PkResults *results;
gchar **values = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* search for newest not installed package */
filter = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
@@ -513,9 +513,9 @@ gpk_firmware_check_available (GpkFirmware *firmware, const gchar *filename)
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to search file: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to search file: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -526,11 +526,11 @@ gpk_firmware_check_available (GpkFirmware *firmware, const gchar *filename)
else if (array->len != 1)
egg_warning ("not one package providing %s found (%i)", filename, length);
else
- item = pk_item_package_ref (g_ptr_array_index (array, 0));
+ item = g_object_ref (g_ptr_array_index (array, 0));
out:
g_strfreev (values);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_object_unref (array);
if (results != NULL)
@@ -572,7 +572,7 @@ gpk_firmware_timeout_cb (gpointer data)
NotifyNotification *notification;
GPtrArray *array;
GError *error = NULL;
- PkItemPackage *item = NULL;
+ PkPackage *item = NULL;
const GpkFirmwareRequest *req;
gboolean has_data = FALSE;
@@ -587,7 +587,7 @@ gpk_firmware_timeout_cb (gpointer data)
item = gpk_firmware_check_available (firmware, req->filename);
if (item != NULL) {
g_ptr_array_add (firmware->priv->packages_found, item);
- pk_item_package_unref (item);
+ g_object_unref (item);
}
}
@@ -998,7 +998,7 @@ gpk_firmware_init (GpkFirmware *firmware)
firmware->priv = GPK_FIRMWARE_GET_PRIVATE (firmware);
firmware->priv->timeout_id = 0;
- firmware->priv->packages_found = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
+ firmware->priv->packages_found = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
firmware->priv->array_requested = g_ptr_array_new_with_free_func ((GDestroyNotify) gpk_firmware_request_free);
firmware->priv->gconf_client = gconf_client_get_default ();
firmware->priv->consolekit = egg_console_kit_new ();
diff --git a/src/gpk-hardware.c b/src/gpk-hardware.c
index 4947ebd..385e16a 100644
--- a/src/gpk-hardware.c
+++ b/src/gpk-hardware.c
@@ -78,7 +78,7 @@ gpk_hardware_install_packages_cb (GObject *object, GAsyncResult *res, GpkHardwar
PkClient *client = PK_CLIENT (object);
GError *error = NULL;
PkResults *results = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -89,14 +89,14 @@ gpk_hardware_install_packages_cb (GObject *object, GAsyncResult *res, GpkHardwar
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to install file: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to install file: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -135,8 +135,10 @@ gpk_hardware_what_provides_cb (GObject *object, GAsyncResult *res, GpkHardware *
NotifyNotification *notification;
gchar *package = NULL;
GPtrArray *array = NULL;
- const PkItemPackage *item = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkPackage *item = NULL;
+ PkError *error_code = NULL;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -147,9 +149,9 @@ gpk_hardware_what_provides_cb (GObject *object, GAsyncResult *res, GpkHardware *
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get provides: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get provides: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -162,7 +164,14 @@ gpk_hardware_what_provides_cb (GObject *object, GAsyncResult *res, GpkHardware *
/* only install the first one? */
item = g_ptr_array_index (array, 0);
- package = gpk_package_id_format_oneline (item->package_id, item->summary);
+
+ /* get data */
+ g_object_get (item,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+
+ package = gpk_package_id_format_oneline (package_id, summary);
/* save array */
if (hardware->priv->package_ids != NULL)
@@ -192,8 +201,10 @@ out:
g_free (package);
g_free (message);
g_free (body);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ g_free (package_id);
+ g_free (summary);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
diff --git a/src/gpk-helper-chooser.c b/src/gpk-helper-chooser.c
index 655970c..338a780 100644
--- a/src/gpk-helper-chooser.c
+++ b/src/gpk-helper-chooser.c
@@ -165,9 +165,12 @@ gpk_helper_chooser_show (GpkHelperChooser *helper, GPtrArray *list)
gchar *text;
const gchar *icon_name;
guint i;
- const PkItemPackage *item;
+ PkPackage *item;
GtkTreeIter iter;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
g_return_val_if_fail (GPK_IS_HELPER_CHOOSER (helper), FALSE);
g_return_val_if_fail (list != NULL, FALSE);
@@ -175,23 +178,30 @@ gpk_helper_chooser_show (GpkHelperChooser *helper, GPtrArray *list)
/* see what we've got already */
for (i=0; i<list->len; i++) {
item = g_ptr_array_index (list, i);
- egg_debug ("package '%s' got:", item->package_id);
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+ egg_debug ("package '%s' got:", package_id);
/* put formatted text into treeview */
gtk_list_store_append (helper->priv->list_store, &iter);
- text = gpk_package_id_format_twoline (item->package_id, item->summary);
+ text = gpk_package_id_format_twoline (package_id, summary);
/* get the icon */
- split = pk_package_id_split (item->package_id);
+ split = pk_package_id_split (package_id);
icon_name = gpk_desktop_guess_icon_name (helper->priv->desktop, split[PK_PACKAGE_ID_NAME]);
g_strfreev (split);
if (icon_name == NULL)
- icon_name = gpk_info_enum_to_icon_name (item->info);
+ icon_name = gpk_info_enum_to_icon_name (info);
gtk_list_store_set (helper->priv->list_store, &iter,
GPK_CHOOSER_COLUMN_TEXT, text,
- GPK_CHOOSER_COLUMN_ID, item->package_id, -1);
+ GPK_CHOOSER_COLUMN_ID, package_id, -1);
gtk_list_store_set (helper->priv->list_store, &iter, GPK_CHOOSER_COLUMN_ICON, icon_name, -1);
+ g_free (package_id);
+ g_free (summary);
g_free (text);
}
diff --git a/src/gpk-log.c b/src/gpk-log.c
index f33eb80..9a3711e 100644
--- a/src/gpk-log.c
+++ b/src/gpk-log.c
@@ -379,7 +379,7 @@ gpk_log_message_received_cb (UniqueApp *app, UniqueCommand command, UniqueMessag
* gpk_log_filter:
**/
static gboolean
-gpk_log_filter (const PkItemTransaction *item)
+gpk_log_filter (PkTransactionPast *item)
{
gboolean ret = FALSE;
guint i;
@@ -387,10 +387,22 @@ gpk_log_filter (const PkItemTransaction *item)
gchar **sections;
gchar **packages;
gchar **split;
+ gchar *tid;
+ gboolean succeeded;
+ gchar *cmdline;
+ gchar *data;
+
+ /* get data */
+ g_object_get (item,
+ "tid", &tid,
+ "succeeded", &succeeded,
+ "cmdline", &cmdline,
+ "data", &data,
+ NULL);
/* only show transactions that succeeded */
- if (!item->succeeded) {
- egg_debug ("tid %s did not succeed, so not adding", item->tid);
+ if (!succeeded) {
+ egg_debug ("tid %s did not succeed, so not adding", tid);
return FALSE;
}
@@ -398,11 +410,11 @@ gpk_log_filter (const PkItemTransaction *item)
return TRUE;
/* matches cmdline */
- if (item->cmdline != NULL && g_strrstr (item->cmdline, filter) != NULL)
+ if (cmdline != NULL && g_strrstr (cmdline, filter) != NULL)
ret = TRUE;
/* look in all the data for the filter string */
- packages = g_strsplit (item->data, "\n", 0);
+ packages = g_strsplit (data, "\n", 0);
length = g_strv_length (packages);
for (i=0; i<length; i++) {
sections = g_strsplit (packages[i], "\t", 0);
@@ -428,6 +440,9 @@ gpk_log_filter (const PkItemTransaction *item)
break;
}
+ g_free (tid);
+ g_free (cmdline);
+ g_free (data);
g_strfreev (packages);
return ret;
@@ -437,7 +452,7 @@ gpk_log_filter (const PkItemTransaction *item)
* gpk_log_add_item
**/
static void
-gpk_log_add_item (const PkItemTransaction *item)
+gpk_log_add_item (PkTransactionPast *item)
{
GtkTreeIter iter;
gchar *details;
@@ -449,19 +464,39 @@ gpk_log_add_item (const PkItemTransaction *item)
const gchar *tool;
static guint count;
struct passwd *pw;
+ gchar *tid;
+ gchar *timespec;
+ gboolean succeeded;
+ guint duration;
+ gchar *cmdline;
+ guint uid;
+ gchar *data;
+ PkRoleEnum role;
GtkTreeView *treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "treeview_simple"));
GtkTreeModel *model = gtk_tree_view_get_model (treeview);
+ /* get data */
+ g_object_get (item,
+ "role", &role,
+ "tid", &tid,
+ "timespec", ×pec,
+ "succeeded", &succeeded,
+ "duration", &duration,
+ "cmdline", &cmdline,
+ "uid", &uid,
+ "data", &data,
+ NULL);
+
/* put formatted text into treeview */
- details = gpk_log_get_details_localised (item->timespec, item->data);
- date = gpk_log_get_localised_date (item->timespec);
+ details = gpk_log_get_details_localised (timespec, data);
+ date = gpk_log_get_localised_date (timespec);
date_part = g_strsplit (date, ", ", 2);
- icon_name = gpk_role_enum_to_icon_name (item->role);
- role_text = gpk_role_enum_to_localised_past (item->role);
+ icon_name = gpk_role_enum_to_icon_name (role);
+ role_text = gpk_role_enum_to_localised_past (role);
/* query real name */
- pw = getpwuid(item->uid);
+ pw = getpwuid(uid);
if (pw != NULL) {
if (pw->pw_gecos != NULL)
username = pw->pw_gecos;
@@ -470,29 +505,29 @@ gpk_log_add_item (const PkItemTransaction *item)
}
/* get nice name for tool name */
- if (g_strcmp0 (item->cmdline, "pkcon") == 0)
+ if (g_strcmp0 (cmdline, "pkcon") == 0)
/* TRANSLATORS: short name for pkcon */
tool = _("Command line client");
- else if (g_strcmp0 (item->cmdline, "gpk-application") == 0)
+ else if (g_strcmp0 (cmdline, "gpk-application") == 0)
/* TRANSLATORS: short name for gpk-update-viewer */
tool = _("Add/Remove Software");
- else if (g_strcmp0 (item->cmdline, "gpk-update-viewer") == 0)
+ else if (g_strcmp0 (cmdline, "gpk-update-viewer") == 0)
/* TRANSLATORS: short name for gpk-update-viewer */
tool = _("Update System");
- else if (g_strcmp0 (item->cmdline, "gpk-update-icon") == 0)
+ else if (g_strcmp0 (cmdline, "gpk-update-icon") == 0)
/* TRANSLATORS: short name for gpk-update-icon */
tool = _("Update Icon");
else
- tool = item->cmdline;
+ tool = cmdline;
- gpk_log_model_get_iter (model, &iter, item->tid);
+ gpk_log_model_get_iter (model, &iter, tid);
gtk_list_store_set (list_store, &iter,
GPK_LOG_COLUMN_ICON, icon_name,
- GPK_LOG_COLUMN_TIMESPEC, item->timespec,
+ GPK_LOG_COLUMN_TIMESPEC, timespec,
GPK_LOG_COLUMN_DATE, date_part[1],
GPK_LOG_COLUMN_ROLE, role_text,
GPK_LOG_COLUMN_DETAILS, details,
- GPK_LOG_COLUMN_ID, item->tid,
+ GPK_LOG_COLUMN_ID, tid,
GPK_LOG_COLUMN_USER, username,
GPK_LOG_COLUMN_TOOL, tool,
GPK_LOG_COLUMN_ACTIVE, TRUE, -1);
@@ -503,6 +538,10 @@ gpk_log_add_item (const PkItemTransaction *item)
gtk_main_iteration ();
g_strfreev (date_part);
+ g_free (tid);
+ g_free (timespec);
+ g_free (cmdline);
+ g_free (data);
g_free (details);
g_free (date);
}
@@ -515,7 +554,7 @@ gpk_log_refilter (void)
{
guint i;
gboolean ret;
- const PkItemTransaction *item;
+ PkTransactionPast *item;
GtkWidget *widget;
const gchar *package;
GtkTreeView *treeview;
@@ -558,7 +597,7 @@ gpk_log_get_old_transactions_cb (GObject *object, GAsyncResult *res, gpointer us
// PkClient *client = PK_CLIENT (object);
GError *error = NULL;
PkResults *results = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -569,9 +608,9 @@ gpk_log_get_old_transactions_cb (GObject *object, GAsyncResult *res, gpointer us
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get old transactions: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get old transactions: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -581,8 +620,8 @@ gpk_log_get_old_transactions_cb (GObject *object, GAsyncResult *res, gpointer us
transactions = pk_results_get_transaction_array (results);
gpk_log_refilter ();
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
diff --git a/src/gpk-modal-dialog.c b/src/gpk-modal-dialog.c
index 89220bc..2a34afd 100644
--- a/src/gpk-modal-dialog.c
+++ b/src/gpk-modal-dialog.c
@@ -633,13 +633,16 @@ gboolean
gpk_modal_dialog_set_package_list (GpkModalDialog *dialog, const GPtrArray *list)
{
GtkTreeIter iter;
- const PkItemPackage *item;
+ PkPackage *item;
PkDesktop *desktop;
gchar *icon;
gchar *text;
guint i;
GtkWidget *widget;
gchar **split;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
gtk_list_store_clear (dialog->priv->store);
@@ -654,16 +657,24 @@ gpk_modal_dialog_set_package_list (GpkModalDialog *dialog, const GPtrArray *list
/* add each well */
for (i=0; i<list->len; i++) {
item = g_ptr_array_index (list, i);
+ g_object_get (item,
+ "info", &info,
+ NULL);
/* not installed, so ignore icon */
- if (item->info == PK_INFO_ENUM_DOWNLOADING ||
- item->info == PK_INFO_ENUM_CLEANUP)
+ if (info == PK_INFO_ENUM_DOWNLOADING ||
+ info == PK_INFO_ENUM_CLEANUP)
continue;
- text = gpk_package_id_format_twoline (item->package_id, item->summary);
+ g_object_get (item,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+
+ text = gpk_package_id_format_twoline (package_id, summary);
/* get the icon */
- split = pk_package_id_split (item->package_id);
+ split = pk_package_id_split (package_id);
icon = gpk_desktop_guess_icon_name (desktop, split[0]);
if (icon == NULL)
icon = g_strdup (gpk_info_enum_to_icon_name (PK_INFO_ENUM_INSTALLED));
@@ -671,10 +682,12 @@ gpk_modal_dialog_set_package_list (GpkModalDialog *dialog, const GPtrArray *list
gtk_list_store_append (dialog->priv->store, &iter);
gtk_list_store_set (dialog->priv->store, &iter,
GPK_MODAL_DIALOG_STORE_IMAGE, icon,
- GPK_MODAL_DIALOG_STORE_ID, item->package_id,
+ GPK_MODAL_DIALOG_STORE_ID, package_id,
GPK_MODAL_DIALOG_STORE_TEXT, text,
-1);
g_strfreev (split);
+ g_free (package_id);
+ g_free (summary);
g_free (icon);
g_free (text);
}
@@ -904,7 +917,7 @@ gpk_modal_dialog_test (EggTest *test)
GtkResponseType button;
GpkModalDialog *dialog = NULL;
GPtrArray *array;
- PkItemPackage *item;
+ PkPackage *item;
if (!egg_test_start (test, "GpkModalDialog"))
return;
@@ -918,10 +931,20 @@ gpk_modal_dialog_test (EggTest *test)
egg_test_failed (test, NULL);
/* set some packages */
- array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
- item = pk_item_package_new (PK_INFO_ENUM_INSTALLED, "totem;001;i386;fedora", "Totem is a music player for GNOME");
+ array = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+ item = pk_package_new ();
+ g_object_set (item,
+ "info", PK_INFO_ENUM_INSTALLED,
+ "package-id", "totem;001;i386;fedora",
+ "summary", "Totem is a music player for GNOME",
+ NULL);
g_ptr_array_add (array, item);
- item = pk_item_package_new (PK_INFO_ENUM_AVAILABLE, "totem;001;i386;fedora", "Amarok is a music player for KDE");
+ item = pk_package_new ();
+ g_object_set (item,
+ "info", PK_INFO_ENUM_AVAILABLE,
+ "package-id", "totem;001;i386;fedora",
+ "summary", "Amarok is a music player for KDE",
+ NULL);
g_ptr_array_add (array, item);
gpk_modal_dialog_set_package_list (dialog, array);
g_ptr_array_unref (array);
diff --git a/src/gpk-repo.c b/src/gpk-repo.c
index d37f8f6..c5c97f7 100644
--- a/src/gpk-repo.c
+++ b/src/gpk-repo.c
@@ -226,7 +226,7 @@ gpk_repo_repo_enable_cb (GObject *object, GAsyncResult *res, gpointer user_data)
// PkClient *client = PK_CLIENT (object);
GError *error = NULL;
PkResults *results = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
/* get the results */
@@ -238,18 +238,18 @@ gpk_repo_repo_enable_cb (GObject *object, GAsyncResult *res, gpointer user_data)
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to set repo: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to set repo: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
window = GTK_WINDOW (gtk_builder_get_object (builder, "dialog_repo"));
/* TRANSLATORS: for one reason or another, we could not enable or disable a software source */
gpk_error_dialog_modal (window, _("Failed to change status"),
- gpk_error_enum_to_localised_text (error_item->code), error_item->details);
+ gpk_error_enum_to_localised_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
}
@@ -354,14 +354,17 @@ gpk_repo_get_repo_list_cb (GObject *object, GAsyncResult *res, gpointer user_dat
// PkClient *client = PK_CLIENT (object);
GError *error = NULL;
PkResults *results = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkTreeView *treeview;
GtkTreeModel *model;
GtkWindow *window;
GPtrArray *array = NULL;
guint i;
- const PkItemRepoDetail *item;
+ PkRepoDetail *item;
GtkTreeIter iter;
+ gchar *repo_id;
+ gchar *description;
+ gboolean enabled;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -372,13 +375,13 @@ gpk_repo_get_repo_list_cb (GObject *object, GAsyncResult *res, gpointer user_dat
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get repo list: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get repo list: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
window = GTK_WINDOW (gtk_builder_get_object (builder, "dialog_repo"));
/* TRANSLATORS: for one reason or another, we could not get the list of sources */
gpk_error_dialog_modal (window, _("Failed to get the list of sources"),
- gpk_error_enum_to_localised_text (error_item->code), error_item->details);
+ gpk_error_enum_to_localised_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -388,15 +391,23 @@ gpk_repo_get_repo_list_cb (GObject *object, GAsyncResult *res, gpointer user_dat
array = pk_results_get_repo_detail_array (results);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- egg_debug ("repo = %s:%s:%i", item->repo_id, item->description, item->enabled);
- gpk_repo_model_get_iter (model, &iter, item->repo_id);
+ g_object_get (item,
+ "repo-id", &repo_id,
+ "description", &description,
+ "enabled", &enabled,
+ NULL);
+ egg_debug ("repo = %s:%s:%i", repo_id, description, enabled);
+ gpk_repo_model_get_iter (model, &iter, repo_id);
gtk_list_store_set (list_store, &iter,
- REPO_COLUMN_ENABLED, item->enabled,
- REPO_COLUMN_TEXT, item->description,
- REPO_COLUMN_ID, item->repo_id,
+ REPO_COLUMN_ENABLED, enabled,
+ REPO_COLUMN_TEXT, description,
+ REPO_COLUMN_ID, repo_id,
REPO_COLUMN_ACTIVE, TRUE,
REPO_COLUMN_SENSITIVE, TRUE,
-1);
+
+ g_free (repo_id);
+ g_free (description);
}
/* remove the items that are not now present */
@@ -405,8 +416,8 @@ gpk_repo_get_repo_list_cb (GObject *object, GAsyncResult *res, gpointer user_dat
/* sort */
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(list_store), REPO_COLUMN_TEXT, GTK_SORT_ASCENDING);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
diff --git a/src/gpk-service-pack.c b/src/gpk-service-pack.c
index dfbe7ba..6c8aef0 100644
--- a/src/gpk-service-pack.c
+++ b/src/gpk-service-pack.c
@@ -182,9 +182,9 @@ gpk_pack_resolve_package_id (const gchar *package)
gchar *package_id = NULL;
gchar **packages = NULL;
GError *error = NULL;
- const PkItemPackage *item;
+ PkPackage *item;
PkResults *results;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get package array */
packages = g_strsplit (package, ";", 0);
@@ -196,9 +196,9 @@ gpk_pack_resolve_package_id (const gchar *package)
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to resolve: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -215,11 +215,11 @@ gpk_pack_resolve_package_id (const gchar *package)
/* convert to a text package id */
item = g_ptr_array_index (array, 0);
- package_id = g_strdup (item->package_id);
+ package_id = g_strdup (pk_package_get_id (item));
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -287,15 +287,24 @@ static gchar *
gpk_pack_package_array_to_string (GPtrArray *array)
{
guint i;
- const PkItemPackage *item;
+ PkPackage *item;
GString *string;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
string = g_string_new ("");
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
g_string_append_printf (string, "%s\t%s\t%s\n",
- pk_info_enum_to_text (item->info),
- item->package_id, item->summary);
+ pk_info_enum_to_text (info), package_id, summary);
+ g_free (package_id);
+ g_free (summary);
}
/* remove trailing newline */
@@ -315,7 +324,7 @@ gpk_pack_copy_package_lists (const gchar *filename, GError **error)
GError *error_local = NULL;
PkResults *results;
gchar *data = NULL;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get package array */
results = pk_client_get_packages (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), NULL, NULL, NULL, &error_local);
@@ -327,9 +336,9 @@ gpk_pack_copy_package_lists (const gchar *filename, GError **error)
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get packages: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get packages: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -345,8 +354,8 @@ gpk_pack_copy_package_lists (const gchar *filename, GError **error)
goto out;
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -484,7 +493,7 @@ gpk_pack_button_create_cb (GtkWidget *widget2, gpointer data)
gboolean ret;
gboolean use_default = FALSE;
GtkProgressBar *progress_bar;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
widget = GTK_WIDGET (gtk_builder_get_object (builder, "filechooserbutton_directory"));
directory = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget));
@@ -559,9 +568,9 @@ gpk_pack_button_create_cb (GtkWidget *widget2, gpointer data)
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to refresh cache: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to refresh cache: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -594,8 +603,8 @@ gpk_pack_button_create_cb (GtkWidget *widget2, gpointer data)
g_object_unref (pack);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
g_strfreev (packages);
g_strfreev (package_ids);
g_strfreev (exclude_ids);
diff --git a/src/gpk-task.c b/src/gpk-task.c
index 78d0b64..39184df 100644
--- a/src/gpk-task.c
+++ b/src/gpk-task.c
@@ -182,10 +182,15 @@ static void
gpk_task_key_question (PkTask *task, guint request, PkResults *results)
{
GPtrArray *array;
- const PkItemRepoSignatureRequired *item;
- GpkTaskPrivate *priv = GPK_TASK(task)->priv;
GtkWidget *widget;
- gchar *text;
+ gchar *printable = NULL;
+ gchar *package_id = NULL;
+ gchar *repository_name = NULL;
+ gchar *key_url = NULL;
+ gchar *key_userid = NULL;
+ gchar *key_id = NULL;
+ PkRepoSignatureRequired *item;
+ GpkTaskPrivate *priv = GPK_TASK(task)->priv;
/* save the current request */
priv->request = request;
@@ -199,21 +204,27 @@ gpk_task_key_question (PkTask *task, guint request, PkResults *results)
/* only one item supported */
item = g_ptr_array_index (array, 0);
+ g_object_get (item,
+ "package-id", &package_id,
+ "repository-name", &repository_name,
+ "key-url", &key_url,
+ "key-userid", &key_userid,
+ "key-id", &key_id,
+ NULL);
/* show correct text */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_signature, "label_name"));
- gtk_label_set_label (GTK_LABEL (widget), item->repository_name);
+ gtk_label_set_label (GTK_LABEL (widget), repository_name);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_signature, "label_url"));
- gtk_label_set_label (GTK_LABEL (widget), item->key_url);
+ gtk_label_set_label (GTK_LABEL (widget), key_url);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_signature, "label_user"));
- gtk_label_set_label (GTK_LABEL (widget), item->key_userid);
+ gtk_label_set_label (GTK_LABEL (widget), key_userid);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_signature, "label_id"));
- gtk_label_set_label (GTK_LABEL (widget), item->key_id);
+ gtk_label_set_label (GTK_LABEL (widget), key_id);
- text = pk_package_id_to_printable (item->package_id);
+ printable = pk_package_id_to_printable (package_id);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_signature, "label_package"));
- gtk_label_set_label (GTK_LABEL (widget), text);
- g_free (text);
+ gtk_label_set_label (GTK_LABEL (widget), printable);
/* show window */
priv->current_window = GTK_WINDOW(gtk_builder_get_object (priv->builder_signature, "dialog_gpg"));
@@ -226,6 +237,12 @@ gpk_task_key_question (PkTask *task, guint request, PkResults *results)
priv->help_id = "gpg-signature";
gtk_widget_show (GTK_WIDGET(priv->current_window));
out:
+ g_free (printable);
+ g_free (package_id);
+ g_free (repository_name);
+ g_free (key_url);
+ g_free (key_userid);
+ g_free (key_id);
g_ptr_array_unref (array);
}
@@ -236,12 +253,15 @@ static void
gpk_task_eula_question (PkTask *task, guint request, PkResults *results)
{
GPtrArray *array;
- const PkItemEulaRequired *item;
- GpkTaskPrivate *priv = GPK_TASK(task)->priv;
GtkWidget *widget;
GtkTextBuffer *buffer;
- gchar *text;
- gchar **split;
+ gchar *printable = NULL;
+ gchar **split = NULL;
+ PkEulaRequired *item;
+ gchar *package_id = NULL;
+ gchar *vendor_name = NULL;
+ gchar *license_agreement = NULL;
+ GpkTaskPrivate *priv = GPK_TASK(task)->priv;
/* save the current request */
priv->request = request;
@@ -255,17 +275,21 @@ gpk_task_eula_question (PkTask *task, guint request, PkResults *results)
/* only one item supported */
item = g_ptr_array_index (array, 0);
+ g_object_get (item,
+ "package-id", &package_id,
+ "vendor-name", &vendor_name,
+ "license-agreement", &license_agreement,
+ NULL);
/* title */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_eula, "label_title"));
- split = pk_package_id_split (item->package_id);
- text = g_strdup_printf ("<b><big>License required for %s by %s</big></b>", split[0], item->vendor_name);
- gtk_label_set_label (GTK_LABEL (widget), text);
- g_free (text);
+ split = pk_package_id_split (package_id);
+ printable = g_strdup_printf ("<b><big>License required for %s by %s</big></b>", split[0], vendor_name);
+ gtk_label_set_label (GTK_LABEL (widget), printable);
buffer = gtk_text_buffer_new (NULL);
- gtk_text_buffer_insert_at_cursor (buffer, item->license_agreement, strlen (item->license_agreement));
+ gtk_text_buffer_insert_at_cursor (buffer, license_agreement, strlen (license_agreement));
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder_eula, "textview_details"));
gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), buffer);
@@ -284,8 +308,12 @@ gpk_task_eula_question (PkTask *task, guint request, PkResults *results)
gtk_widget_show (GTK_WIDGET(priv->current_window));
g_object_unref (buffer);
- g_strfreev (split);
out:
+ g_free (printable);
+ g_free (package_id);
+ g_free (vendor_name);
+ g_free (license_agreement);
+ g_strfreev (split);
g_ptr_array_unref (array);
}
@@ -296,10 +324,13 @@ static void
gpk_task_media_change_question (PkTask *task, guint request, PkResults *results)
{
GPtrArray *array;
- const PkItemMediaChangeRequired *item;
- GpkTaskPrivate *priv = GPK_TASK(task)->priv;
+ PkMediaChangeRequired *item;
const gchar *name;
gchar *message = NULL;
+ gchar *media_id;
+ PkMediaTypeEnum media_type;
+ gchar *media_text;
+ GpkTaskPrivate *priv = GPK_TASK(task)->priv;
/* save the current request */
priv->request = request;
@@ -313,10 +344,15 @@ gpk_task_media_change_question (PkTask *task, guint request, PkResults *results)
/* only one item supported */
item = g_ptr_array_index (array, 0);
+ g_object_get (item,
+ "media-id", &media_id,
+ "media-type", &media_type,
+ "media-text", &media_text,
+ NULL);
- name = gpk_media_type_enum_to_localised_text (item->media_type);
+ name = gpk_media_type_enum_to_localised_text (media_type);
/* TRANSLATORS: dialog body, explains to the user that they need to insert a disk to continue. The first replacement is DVD, CD etc */
- message = g_strdup_printf (_("Additional media is required. Please insert the %s labeled '%s' to continue."), name, item->media_text);
+ message = g_strdup_printf (_("Additional media is required. Please insert the %s labeled '%s' to continue."), name, media_text);
priv->current_window = GTK_WINDOW (gtk_message_dialog_new (priv->parent_window, GTK_DIALOG_DESTROY_WITH_PARENT,
/* TRANSLATORS: this is the window title when a new cd or dvd is required */
@@ -628,9 +664,7 @@ gpk_task_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *
GError *error = NULL;
PkResults *results;
GPtrArray *packages;
- const PkItemPackage *item;
- guint i;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_task_generic_finish (PK_TASK(task), res, &error);
@@ -641,27 +675,21 @@ gpk_task_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL)
- egg_test_failed (test, "failed to resolve success: %s", error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL)
+ egg_test_failed (test, "failed to resolve success: %s", pk_error_get_details (error_code));
packages = pk_results_get_package_array (results);
if (packages == NULL)
egg_test_failed (test, "no packages!");
- /* list, just for shits and giggles */
- for (i=0; i<packages->len; i++) {
- item = g_ptr_array_index (packages, i);
- egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info), item->package_id, item->summary);
- }
-
- if (packages->len != 3)
+ if (packages->len != 4)
egg_test_failed (test, "invalid number of packages: %i", packages->len);
g_ptr_array_unref (packages);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (results != NULL)
g_object_unref (results);
egg_test_loop_quit (test);
diff --git a/src/gpk-update-viewer.c b/src/gpk-update-viewer.c
index e58826d..a0883c4 100644
--- a/src/gpk-update-viewer.c
+++ b/src/gpk-update-viewer.c
@@ -292,23 +292,37 @@ static void
gpk_update_viewer_check_blocked_packages (GpkUpdateViewer *update_viewer, GPtrArray *array)
{
guint i;
- const PkItemPackage *item;
+ PkPackage *item;
GString *string;
gboolean exists = FALSE;
gchar *text;
GtkWindow *window;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
string = g_string_new ("");
/* find any that are blocked */
for (i=0;i<array->len;i++) {
item = g_ptr_array_index (array, i);
- if (item->info == PK_INFO_ENUM_BLOCKED) {
- text = gpk_package_id_format_oneline (item->package_id, item->summary);
+
+ /* get data */
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+
+ if (info == PK_INFO_ENUM_BLOCKED) {
+ text = gpk_package_id_format_oneline (package_id, summary);
g_string_append_printf (string, "%s\n", text);
g_free (text);
exists = TRUE;
}
+
+ g_free (package_id);
+ g_free (summary);
}
/* trim off extra newlines */
@@ -363,13 +377,11 @@ gpk_update_viewer_update_packages_cb (PkTask *task, GAsyncResult *res, GpkUpdate
PkResults *results;
GError *error = NULL;
GPtrArray *array = NULL;
- PkItemPackage *item;
- guint i;
GtkWidget *dialog;
GtkWidget *widget;
PkRestartEnum restart;
gchar *text;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
gboolean ret;
const gchar *message;
@@ -394,9 +406,9 @@ gpk_update_viewer_update_packages_cb (PkTask *task, GAsyncResult *res, GpkUpdate
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to update packages: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to update packages: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* failed sound, using sounds from the naming spec */
ca_context_play (ca_gtk_context_get (), 0,
@@ -407,8 +419,8 @@ gpk_update_viewer_update_packages_cb (PkTask *task, GAsyncResult *res, GpkUpdate
CA_PROP_EVENT_DESCRIPTION, _("Failed to update"), NULL);
window = GTK_WINDOW(gtk_builder_get_object (priv->builder, "dialog_updates"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
/* re-enable the package list */
gpk_update_viewer_undisable_packages (update_viewer);
@@ -422,13 +434,6 @@ gpk_update_viewer_update_packages_cb (PkTask *task, GAsyncResult *res, GpkUpdate
gpk_update_viewer_undisable_packages (update_viewer);
- /* get blocked data */
- array = pk_results_get_package_array (results);
- for (i=0; i<array->len; i++) {
- item = g_ptr_array_index (array, i);
- egg_debug ("updated %s:%s", pk_info_enum_to_text (item->info), item->package_id);
- }
-
/* TODO: use ca_gtk_context_get_for_screen to allow use of GDK_MULTIHEAD_SAFE */
/* play the sound, using sounds from the naming spec */
@@ -505,8 +510,8 @@ out:
/* no longer updating */
priv->ignore_updates_changed = FALSE;
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1565,7 +1570,7 @@ gpk_update_viewer_get_uris (const gchar *url_string)
* gpk_update_viewer_populate_details:
**/
static void
-gpk_update_viewer_populate_details (GpkUpdateViewer *update_viewer, const PkItemUpdateDetail *item)
+gpk_update_viewer_populate_details (GpkUpdateViewer *update_viewer, PkUpdateDetail *item)
{
GtkTreeView *treeview;
GtkTreeSelection *selection;
@@ -1576,12 +1581,38 @@ gpk_update_viewer_populate_details (GpkUpdateViewer *update_viewer, const PkItem
gchar *line;
gchar *line2;
const gchar *title;
+ GtkTextIter iter;
+ gboolean has_update_text = FALSE;
+ gchar *package_id;
+ gchar *updates;
+ gchar *obsoletes;
+ gchar *vendor_url;
+ gchar *bugzilla_url;
+ gchar *cve_url;
+ PkRestartEnum restart;
+ gchar *update_text;
+ gchar *changelog;
+ PkUpdateStateEnum state;
gchar *issued;
gchar *updated;
- GtkTextIter iter;
- gboolean update_text = FALSE;
GpkUpdateViewerPrivate *priv = update_viewer->priv;
+ /* get data */
+ g_object_get (item,
+ "package-id", &package_id,
+ "updates", &updates,
+ "obsoletes", &obsoletes,
+ "vendor-url", &vendor_url,
+ "bugzilla-url", &bugzilla_url,
+ "cve-url", &cve_url,
+ "restart", &restart,
+ "update-text", &update_text,
+ "changelog", &changelog,
+ "state", &state,
+ "issued", &issued,
+ "updated", &updated,
+ NULL);
+
/* get info */
treeview = GTK_TREE_VIEW(gtk_builder_get_object (priv->builder, "treeview_updates"));
selection = gtk_tree_view_get_selection (treeview);
@@ -1618,57 +1649,51 @@ gpk_update_viewer_populate_details (GpkUpdateViewer *update_viewer, const PkItem
}
/* issued and updated */
- if (item->issued != NULL && item->updated != NULL) {
- issued = pk_iso8601_from_date (item->issued);
- updated = pk_iso8601_from_date (item->updated);
+ if (issued != NULL && issued[0] != '\0' && updated != NULL && updated[0] != '\0') {
/* TRANSLATORS: this is when the notification was issued and then updated*/
line = g_strdup_printf (_("This notification was issued on %s and last updated on %s."), issued, updated);
gtk_text_buffer_insert_with_tags_by_name (priv->text_buffer, &iter, line, -1, "para", NULL);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n", -1);
- g_free (issued);
- g_free (updated);
g_free (line);
- } else if (item->issued != NULL) {
- issued = pk_iso8601_from_date (item->issued);
+ } else if (issued != NULL && issued[0] != '\0') {
/* TRANSLATORS: this is when the update was issued */
line = g_strdup_printf (_("This notification was issued on %s."), issued);
gtk_text_buffer_insert_with_tags_by_name (priv->text_buffer, &iter, line, -1, "para", NULL);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n", -1);
- g_free (issued);
g_free (line);
}
/* update text */
- if (!egg_strzero (item->update_text)) {
+ if (!egg_strzero (update_text)) {
/* convert the bullets */
- line = egg_markdown_parse (priv->markdown, item->update_text);
+ line = egg_markdown_parse (priv->markdown, update_text);
if (!egg_strzero (line)) {
gtk_text_buffer_insert_markup (priv->text_buffer, &iter, line);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n\n", -1);
- update_text = TRUE;
+ has_update_text = TRUE;
}
g_free (line);
}
/* add all the links */
- if (!egg_strzero (item->vendor_url)) {
- array = gpk_update_viewer_get_uris (item->vendor_url);
+ if (!egg_strzero (vendor_url)) {
+ array = gpk_update_viewer_get_uris (vendor_url);
/* TRANSLATORS: this is a array of vendor URLs */
title = ngettext ("For more information about this update please visit this website:",
"For more information about this update please visit these websites:", array->len);
gpk_update_viewer_add_description_link_item (priv->text_buffer, &iter, title, array);
g_ptr_array_unref (array);
}
- if (!egg_strzero (item->bugzilla_url)) {
- array = gpk_update_viewer_get_uris (item->bugzilla_url);
+ if (!egg_strzero (bugzilla_url)) {
+ array = gpk_update_viewer_get_uris (bugzilla_url);
/* TRANSLATORS: this is a array of bugzilla URLs */
title = ngettext ("For more information about bugs fixed by this update please visit this website:",
"For more information about bugs fixed by this update please visit these websites:", array->len);
gpk_update_viewer_add_description_link_item (priv->text_buffer, &iter, title, array);
g_ptr_array_unref (array);
}
- if (!egg_strzero (item->cve_url)) {
- array = gpk_update_viewer_get_uris (item->cve_url);
+ if (!egg_strzero (cve_url)) {
+ array = gpk_update_viewer_get_uris (cve_url);
/* TRANSLATORS: this is a array of CVE (security) URLs */
title = ngettext ("For more information about this security update please visit this website:",
"For more information about this security update please visit these websites:", array->len);
@@ -1677,30 +1702,30 @@ gpk_update_viewer_populate_details (GpkUpdateViewer *update_viewer, const PkItem
}
/* reboot */
- if (item->restart == PK_RESTART_ENUM_SYSTEM) {
+ if (restart == PK_RESTART_ENUM_SYSTEM) {
/* TRANSLATORS: reboot required */
gtk_text_buffer_insert_with_tags_by_name (priv->text_buffer, &iter, _("The computer will have to be restarted after the update for the changes to take effect."), -1, "para", NULL);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n", -1);
- } else if (item->restart == PK_RESTART_ENUM_SESSION) {
+ } else if (restart == PK_RESTART_ENUM_SESSION) {
/* TRANSLATORS: log out required */
gtk_text_buffer_insert_with_tags_by_name (priv->text_buffer, &iter, _("You will need to log out and back in after the update for the changes to take effect."), -1, "para", NULL);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n", -1);
}
/* state */
- if (item->state == PK_UPDATE_STATE_ENUM_UNSTABLE) {
+ if (state == PK_UPDATE_STATE_ENUM_UNSTABLE) {
/* TRANSLATORS: this is the stability status of the update */
gtk_text_buffer_insert_with_tags_by_name (priv->text_buffer, &iter, _("The classifaction of this update is unstable which means it is not designed for production use."), -1, "para", NULL);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n", -1);
- } else if (item->state == PK_UPDATE_STATE_ENUM_TESTING) {
+ } else if (state == PK_UPDATE_STATE_ENUM_TESTING) {
/* TRANSLATORS: this is the stability status of the update */
gtk_text_buffer_insert_with_tags_by_name (priv->text_buffer, &iter, _("This is a test update, and is not designed for normal use. Please report any problems or regressions you encounter."), -1, "para", NULL);
gtk_text_buffer_insert (priv->text_buffer, &iter, "\n", -1);
}
/* only show changelog if we didn't have any update text */
- if (!update_text && !egg_strzero (item->changelog)) {
- line = egg_markdown_parse (priv->markdown, item->changelog);
+ if (!has_update_text && !egg_strzero (changelog)) {
+ line = egg_markdown_parse (priv->markdown, changelog);
if (!egg_strzero (line)) {
/* TRANSLATORS: this is a ChangeLog */
line2 = g_strdup_printf ("%s\n%s\n", _("The developer logs will be shown as no description is available for this update:"), line);
@@ -1709,6 +1734,17 @@ gpk_update_viewer_populate_details (GpkUpdateViewer *update_viewer, const PkItem
}
g_free (line);
}
+
+ g_free (package_id);
+ g_free (updates);
+ g_free (obsoletes);
+ g_free (vendor_url);
+ g_free (bugzilla_url);
+ g_free (cve_url);
+ g_free (update_text);
+ g_free (changelog);
+ g_free (issued);
+ g_free (updated);
}
/**
@@ -1720,7 +1756,7 @@ gpk_packages_treeview_clicked_cb (GtkTreeSelection *selection, GpkUpdateViewer *
GtkTreeModel *model;
GtkTreeIter iter;
gchar *package_id;
- PkItemUpdateDetail *item = NULL;
+ PkUpdateDetail *item = NULL;
/* This will only work in single or browse selection mode! */
if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
@@ -1749,15 +1785,17 @@ gpk_update_viewer_get_details_cb (PkClient *client, GAsyncResult *res, GpkUpdate
PkResults *results;
GError *error = NULL;
GPtrArray *array = NULL;
- PkItemDetails *item;
+ PkDetails *item;
guint i;
+ guint64 size;
+ gchar *package_id;
GtkWidget *widget;
GtkTreePath *path;
GtkTreeModel *model;
GtkTreeSelection *selection;
GtkTreeView *treeview;
GtkTreeIter iter;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
GpkUpdateViewerPrivate *priv = update_viewer->priv;
@@ -1770,13 +1808,13 @@ gpk_update_viewer_get_details_cb (PkClient *client, GAsyncResult *res, GpkUpdate
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get details: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get details: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
window = GTK_WINDOW(gtk_builder_get_object (priv->builder, "dialog_updates"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -1788,23 +1826,29 @@ gpk_update_viewer_get_details_cb (PkClient *client, GAsyncResult *res, GpkUpdate
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- path = gpk_update_viewer_model_get_path (model, item->package_id);
+ /* get data */
+ g_object_get (item,
+ "package-id", &package_id,
+ "size", &size,
+ NULL);
+
+ path = gpk_update_viewer_model_get_path (model, package_id);
if (path == NULL) {
egg_debug ("not found ID for details");
- return;
- }
-
- gtk_tree_model_get_iter (model, &iter, path);
- gtk_tree_path_free (path);
- gtk_list_store_set (priv->array_store_updates, &iter,
- GPK_UPDATES_COLUMN_DETAILS_OBJ, (gpointer) pk_item_details_ref (item),
- GPK_UPDATES_COLUMN_SIZE, (gint)item->size,
- GPK_UPDATES_COLUMN_SIZE_DISPLAY, (gint)item->size,
- -1);
- /* in cache */
- if (item->size == 0)
+ } else {
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_path_free (path);
gtk_list_store_set (priv->array_store_updates, &iter,
- GPK_UPDATES_COLUMN_STATUS, GPK_INFO_ENUM_DOWNLOADED, -1);
+ GPK_UPDATES_COLUMN_DETAILS_OBJ, (gpointer) g_object_ref (item),
+ GPK_UPDATES_COLUMN_SIZE, (gint)size,
+ GPK_UPDATES_COLUMN_SIZE_DISPLAY, (gint)size,
+ -1);
+ /* in cache */
+ if (size == 0)
+ gtk_list_store_set (priv->array_store_updates, &iter,
+ GPK_UPDATES_COLUMN_STATUS, GPK_INFO_ENUM_DOWNLOADED, -1);
+ }
+ g_free (package_id);
}
/* select the first entry in the updates array now we've got data */
@@ -1818,8 +1862,8 @@ gpk_update_viewer_get_details_cb (PkClient *client, GAsyncResult *res, GpkUpdate
/* set info */
gpk_update_viewer_reconsider_info (update_viewer);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -1835,14 +1879,16 @@ gpk_update_viewer_get_update_detail_cb (PkClient *client, GAsyncResult *res, Gpk
PkResults *results;
GError *error = NULL;
GPtrArray *array = NULL;
- PkItemUpdateDetail *item;
+ PkUpdateDetail *item;
guint i;
GtkTreeView *treeview;
GtkTreeModel *model;
GtkTreeIter iter;
GtkTreePath *path;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
+ gchar *package_id;
+ PkRestartEnum restart;
GpkUpdateViewerPrivate *priv = update_viewer->priv;
/* get the results */
@@ -1854,13 +1900,13 @@ gpk_update_viewer_get_update_detail_cb (PkClient *client, GAsyncResult *res, Gpk
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get update details: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get update details: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
window = GTK_WINDOW(gtk_builder_get_object (priv->builder, "dialog_updates"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -1870,21 +1916,28 @@ gpk_update_viewer_get_update_detail_cb (PkClient *client, GAsyncResult *res, Gpk
array = pk_results_get_update_detail_array (results);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- path = gpk_update_viewer_model_get_path (model, item->package_id);
+
+ /* get data */
+ g_object_get (item,
+ "package-id", &package_id,
+ "restart", &restart,
+ NULL);
+
+ path = gpk_update_viewer_model_get_path (model, package_id);
if (path == NULL) {
egg_warning ("not found ID for update detail");
- continue;
+ } else {
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_path_free (path);
+ gtk_list_store_set (priv->array_store_updates, &iter,
+ GPK_UPDATES_COLUMN_UPDATE_DETAIL_OBJ, (gpointer) g_object_ref (item),
+ GPK_UPDATES_COLUMN_RESTART, restart, -1);
}
-
- gtk_tree_model_get_iter (model, &iter, path);
- gtk_tree_path_free (path);
- gtk_list_store_set (priv->array_store_updates, &iter,
- GPK_UPDATES_COLUMN_UPDATE_DETAIL_OBJ, (gpointer) pk_item_update_detail_ref (item),
- GPK_UPDATES_COLUMN_RESTART, item->restart, -1);
+ g_free (package_id);
}
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -2124,12 +2177,14 @@ gpk_update_viewer_packages_to_ids (GPtrArray *array)
{
guint i;
gchar **value;
- PkItemPackage *item;
+ PkPackage *item;
+ const gchar *package_id;
value = g_new0 (gchar *, array->len + 1);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- value[i] = g_strdup (item->package_id);
+ package_id = pk_package_get_id (item);
+ value[i] = g_strdup (package_id);
}
return value;
}
@@ -2143,7 +2198,7 @@ gpk_update_viewer_get_updates_cb (PkClient *client, GAsyncResult *res, GpkUpdate
PkResults *results;
GError *error = NULL;
GPtrArray *array = NULL;
- PkItemPackage *item;
+ PkPackage *item;
gchar *text = NULL;
gboolean selected;
GtkTreeIter iter;
@@ -2152,8 +2207,11 @@ gpk_update_viewer_get_updates_cb (PkClient *client, GAsyncResult *res, GpkUpdate
GtkTreeView *treeview;
GtkTreeModel *model;
GtkWidget *widget;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
+ PkInfoEnum info;
+ gchar *package_id = NULL;
+ gchar *summary = NULL;
GpkUpdateViewerPrivate *priv = update_viewer->priv;
/* get the results */
@@ -2165,13 +2223,13 @@ gpk_update_viewer_get_updates_cb (PkClient *client, GAsyncResult *res, GpkUpdate
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get updates: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get updates: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
window = GTK_WINDOW(gtk_builder_get_object (priv->builder, "dialog_updates"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -2180,15 +2238,22 @@ gpk_update_viewer_get_updates_cb (PkClient *client, GAsyncResult *res, GpkUpdate
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
+ /* get data */
+ g_object_get (item,
+ "info", &info,
+ "package-id", &package_id,
+ "summary", &summary,
+ NULL);
+
/* add to array store */
- text = gpk_package_id_format_twoline (item->package_id, item->summary);
- egg_debug ("adding: id=%s, text=%s", item->package_id, text);
- selected = (item->info != PK_INFO_ENUM_BLOCKED);
+ text = gpk_package_id_format_twoline (package_id, summary);
+ egg_debug ("adding: id=%s, text=%s", package_id, text);
+ selected = (info != PK_INFO_ENUM_BLOCKED);
gtk_list_store_append (priv->array_store_updates, &iter);
gtk_list_store_set (priv->array_store_updates, &iter,
GPK_UPDATES_COLUMN_TEXT, text,
- GPK_UPDATES_COLUMN_ID, item->package_id,
- GPK_UPDATES_COLUMN_INFO, item->info,
+ GPK_UPDATES_COLUMN_ID, package_id,
+ GPK_UPDATES_COLUMN_INFO, info,
GPK_UPDATES_COLUMN_SELECT, selected,
GPK_UPDATES_COLUMN_SENSITIVE, selected,
GPK_UPDATES_COLUMN_CLICKABLE, selected,
@@ -2200,6 +2265,8 @@ gpk_update_viewer_get_updates_cb (PkClient *client, GAsyncResult *res, GpkUpdate
GPK_UPDATES_COLUMN_PULSE, -1,
-1);
g_free (text);
+ g_free (package_id);
+ g_free (summary);
}
/* get the download sizes */
@@ -2237,8 +2304,8 @@ gpk_update_viewer_get_updates_cb (PkClient *client, GAsyncResult *res, GpkUpdate
gpk_update_viewer_reconsider_info (update_viewer);
out:
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
@@ -2504,16 +2571,23 @@ gpk_update_viewer_search_equal_func (GtkTreeModel *model, gint column, const gch
/**
* gpk_update_viewer_get_distro_upgrades_best:
**/
-static PkItemDistroUpgrade *
+static PkDistroUpgrade *
gpk_update_viewer_get_distro_upgrades_best (GPtrArray *array)
{
- PkItemDistroUpgrade *item;
+ PkDistroUpgrade *item;
guint i;
+ PkDistroUpgradeEnum state;
/* find a stable update */
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
- if (item->state == PK_UPDATE_STATE_ENUM_STABLE)
+
+ /* get data */
+ g_object_get (item,
+ "state", &state,
+ NULL);
+
+ if (state == PK_UPDATE_STATE_ENUM_STABLE)
goto out;
}
item = NULL;
@@ -2530,11 +2604,12 @@ gpk_update_viewer_get_distro_upgrades_cb (PkClient *client, GAsyncResult *res, G
PkResults *results;
GError *error = NULL;
GPtrArray *array = NULL;
- PkItemDistroUpgrade *item;
+ PkDistroUpgrade *item;
gchar *text = NULL;
gchar *text_format = NULL;
+ gchar *summary = NULL;
GtkWidget *widget;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
GtkWindow *window;
GpkUpdateViewerPrivate *priv = update_viewer->priv;
@@ -2547,13 +2622,13 @@ gpk_update_viewer_get_distro_upgrades_cb (PkClient *client, GAsyncResult *res, G
}
/* check error code */
- error_item = pk_results_get_error_code (results);
- if (error_item != NULL) {
- egg_warning ("failed to get list of distro upgrades: %s, %s", pk_error_enum_to_text (error_item->code), error_item->details);
+ error_code = pk_results_get_error_code (results);
+ if (error_code != NULL) {
+ egg_warning ("failed to get list of distro upgrades: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
window = GTK_WINDOW(gtk_builder_get_object (priv->builder, "dialog_updates"));
- gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (error_item->code),
- gpk_error_enum_to_localised_message (error_item->code), error_item->details);
+ gpk_error_dialog_modal (window, gpk_error_enum_to_localised_text (pk_error_get_code (error_code)),
+ gpk_error_enum_to_localised_message (pk_error_get_code (error_code)), pk_error_get_details (error_code));
goto out;
}
@@ -2563,10 +2638,16 @@ gpk_update_viewer_get_distro_upgrades_cb (PkClient *client, GAsyncResult *res, G
if (item == NULL)
goto out;
+
+ /* get data */
+ g_object_get (item,
+ "summary", &summary,
+ NULL);
+
/* only display last (newest) distro */
widget = GTK_WIDGET(gtk_builder_get_object (priv->builder, "label_upgrade"));
/* TRANSLATORS: new distro available, e.g. F9 to F10 */
- text = g_strdup_printf (_("New distribution upgrade release '%s' is available"), item->summary);
+ text = g_strdup_printf (_("New distribution upgrade release '%s' is available"), summary);
text_format = g_strdup_printf ("<b>%s</b>", text);
gtk_label_set_label (GTK_LABEL(widget), text_format);
@@ -2576,10 +2657,11 @@ gpk_update_viewer_get_distro_upgrades_cb (PkClient *client, GAsyncResult *res, G
/* get model */
gpk_update_viewer_reconsider_info (update_viewer);
out:
+ g_free (summary);
g_free (text);
g_free (text_format);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (array != NULL)
g_ptr_array_unref (array);
if (results != NULL)
diff --git a/src/gpk-watch.c b/src/gpk-watch.c
index da95639..de9b97f 100644
--- a/src/gpk-watch.c
+++ b/src/gpk-watch.c
@@ -1282,28 +1282,36 @@ out:
* pk_watch_process_messages_cb:
**/
static void
-pk_watch_process_messages_cb (PkItemMessage *item, GpkWatch *watch)
+pk_watch_process_messages_cb (PkMessage *item, GpkWatch *watch)
{
gboolean ret;
GError *error = NULL;
gboolean value;
NotifyNotification *notification;
GpkWatchCachedMessage *cached_message;
+ PkMessageEnum type;
+ gchar *details;
g_return_if_fail (GPK_IS_WATCH (watch));
+ /* get data */
+ g_object_get (item,
+ "type", &type,
+ "details", &details,
+ NULL);
+
/* is ignored */
- ret = gpk_watch_is_message_ignored (watch, item->type);
+ ret = gpk_watch_is_message_ignored (watch, type);
if (ret) {
egg_debug ("ignoring message");
- return;
+ goto out;
}
/* add to list */
cached_message = g_new0 (GpkWatchCachedMessage, 1);
- cached_message->type = item->type;
+ cached_message->type = type;
cached_message->tid = NULL;
- cached_message->details = g_strdup (item->details);
+ cached_message->details = g_strdup (details);
g_ptr_array_add (watch->priv->cached_messages, cached_message);
/* close existing */
@@ -1320,7 +1328,7 @@ pk_watch_process_messages_cb (PkItemMessage *item, GpkWatch *watch)
value = gconf_client_get_bool (watch->priv->gconf_client, GPK_CONF_NOTIFY_MESSAGE, NULL);
if (!value) {
egg_debug ("not showing notification as prevented in gconf");
- return;
+ goto out;
}
/* do the bubble */
@@ -1333,13 +1341,15 @@ pk_watch_process_messages_cb (PkItemMessage *item, GpkWatch *watch)
g_error_free (error);
}
watch->priv->notification_cached_messages = notification;
+out:
+ g_free (details);
}
/**
* pk_watch_process_error_code:
**/
static void
-pk_watch_process_error_code (GpkWatch *watch, PkItemErrorCode *item)
+pk_watch_process_error_code (GpkWatch *watch, PkError *error_code)
{
gboolean ret;
GError *error = NULL;
@@ -1348,17 +1358,19 @@ pk_watch_process_error_code (GpkWatch *watch, PkItemErrorCode *item)
const gchar *message;
gboolean value;
NotifyNotification *notification;
+ PkErrorEnum code;
g_return_if_fail (GPK_IS_WATCH (watch));
- title = gpk_error_enum_to_localised_text (item->code);
+ code = pk_error_get_code (error_code);
+ title = gpk_error_enum_to_localised_text (code);
/* ignore some errors */
- if (item->code == PK_ERROR_ENUM_NOT_SUPPORTED ||
- item->code == PK_ERROR_ENUM_NO_NETWORK ||
- item->code == PK_ERROR_ENUM_PROCESS_KILL ||
- item->code == PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
- egg_debug ("error ignored %s%s", title, item->details);
+ if (code == PK_ERROR_ENUM_NOT_SUPPORTED ||
+ code == PK_ERROR_ENUM_NO_NETWORK ||
+ code == PK_ERROR_ENUM_PROCESS_KILL ||
+ code == PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
+ egg_debug ("error ignored %s%s", title, pk_error_get_details (error_code));
goto out;
}
@@ -1370,11 +1382,11 @@ pk_watch_process_error_code (GpkWatch *watch, PkItemErrorCode *item)
}
/* we need to format this */
- message = gpk_error_enum_to_localised_message (item->code);
+ message = gpk_error_enum_to_localised_message (code);
/* save this globally */
g_free (watch->priv->error_details);
- watch->priv->error_details = g_markup_escape_text (item->details, -1);
+ watch->priv->error_details = g_markup_escape_text (pk_error_get_details (error_code), -1);
/* TRANSLATORS: Prefix to the title shown in the libnotify popup */
title_prefix = g_strdup_printf ("%s: %s", _("Package Manager"), title);
@@ -1400,20 +1412,28 @@ out:
* pk_watch_process_require_restart_cb:
**/
static void
-pk_watch_process_require_restart_cb (PkItemRequireRestart *item, GpkWatch *watch)
+pk_watch_process_require_restart_cb (PkRequireRestart *item, GpkWatch *watch)
{
GPtrArray *array = NULL;
GPtrArray *names = NULL;
const gchar *name;
gchar **split = NULL;
guint i;
+ PkRestartEnum restart;
+ gchar *package_id = NULL;
+
+ /* get data */
+ g_object_get (item,
+ "restart", &restart,
+ "package-id", &package_id,
+ NULL);
/* if less important than what we are already showing */
- if (item->restart <= watch->priv->restart)
+ if (restart <= watch->priv->restart)
goto out;
/* add name if not already in the list */
- split = pk_package_id_split (item->package_id);
+ split = pk_package_id_split (package_id);
names = watch->priv->restart_package_names;
for (i=0; i<names->len; i++) {
name = g_ptr_array_index (names, i);
@@ -1426,8 +1446,9 @@ pk_watch_process_require_restart_cb (PkItemRequireRestart *item, GpkWatch *watch
}
/* save new restart */
- watch->priv->restart = item->restart;
+ watch->priv->restart = restart;
out:
+ g_free (package_id);
g_strfreev (split);
if (array != NULL)
g_object_unref (array);
@@ -1450,7 +1471,7 @@ gpk_watch_adopt_cb (PkClient *client, GAsyncResult *res, GpkWatch *watch)
PkProgress *progress = NULL;
PkResults *results;
PkRoleEnum role;
- PkItemErrorCode *error_item = NULL;
+ PkError *error_code = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -1481,20 +1502,20 @@ gpk_watch_adopt_cb (PkClient *client, GAsyncResult *res, GpkWatch *watch)
gpk_modal_dialog_set_percentage (watch->priv->dialog, 100);
/* autoclose if success */
- error_item = pk_results_get_error_code (results);
- if (error_item == NULL)
+ error_code = pk_results_get_error_code (results);
+ if (error_code == NULL)
gpk_modal_dialog_close (watch->priv->dialog);
/* process messages */
- if (error_item == NULL) {
+ if (error_code == NULL) {
array = pk_results_get_message_array (results);
g_ptr_array_foreach (array, (GFunc) pk_watch_process_messages_cb, watch);
g_ptr_array_unref (array);
}
/* only process errors if caller is no longer on the bus */
- if (error_item != NULL && !caller_active)
- pk_watch_process_error_code (watch, error_item);
+ if (error_code != NULL && !caller_active)
+ pk_watch_process_error_code (watch, error_code);
/* process restarts */
if (role == PK_ROLE_ENUM_UPDATE_PACKAGES ||
@@ -1551,8 +1572,8 @@ gpk_watch_adopt_cb (PkClient *client, GAsyncResult *res, GpkWatch *watch)
}
out:
g_free (transaction_id);
- if (error_item != NULL)
- pk_item_error_code_unref (error_item);
+ if (error_code != NULL)
+ g_object_unref (error_code);
if (progress != NULL)
g_object_unref (progress);
if (results != NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]