[gnome-packagekit/glib2: 79/79] moo
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-packagekit/glib2: 79/79] moo
- Date: Tue, 6 Oct 2009 09:51:22 +0000 (UTC)
commit 286b7a0122fdbeee4b5342244fba245bb15bb9ea
Author: Richard Hughes <richard hughsie com>
Date: Mon Oct 5 17:39:23 2009 +0100
moo
src/gpk-common.c | 9 ++-
src/gpk-update-viewer.c | 161 +++++++++++++----------------------------------
2 files changed, 50 insertions(+), 120 deletions(-)
---
diff --git a/src/gpk-common.c b/src/gpk-common.c
index 472e232..c713c6f 100644
--- a/src/gpk-common.c
+++ b/src/gpk-common.c
@@ -289,14 +289,18 @@ gchar *
gpk_package_id_format_twoline (const gchar *package_id, const gchar *summary)
{
gchar *summary_safe;
- gchar *text;
+ gchar *text = NULL;
GString *string;
- gchar **split;
+ gchar **split = NULL;
g_return_val_if_fail (package_id != NULL, NULL);
/* optional */
split = pk_package_id_split (package_id);
+ if (split == NULL) {
+ egg_warning ("could not parse %s", package_id);
+ goto out;
+ }
if (summary == NULL || summary[PK_PACKAGE_ID_NAME] == '\0') {
string = g_string_new (split[PK_PACKAGE_ID_NAME]);
} else {
@@ -313,6 +317,7 @@ gpk_package_id_format_twoline (const gchar *package_id, const gchar *summary)
g_string_append_printf (string, " (%s)", split[PK_PACKAGE_ID_ARCH]);
text = g_string_free (string, FALSE);
+out:
g_strfreev (split);
return text;
}
diff --git a/src/gpk-update-viewer.c b/src/gpk-update-viewer.c
index 231efd4..7b70c71 100644
--- a/src/gpk-update-viewer.c
+++ b/src/gpk-update-viewer.c
@@ -611,11 +611,12 @@ gpk_update_viewer_find_iter_model_cb (GtkTreeModel *model, GtkTreePath *path, Gt
* gpk_update_viewer_model_get_path:
**/
static GtkTreePath *
-gpk_update_viewer_model_get_path (GtkTreeModel *model, const gchar *id)
+gpk_update_viewer_model_get_path (GtkTreeModel *model, const gchar *package_id)
{
GtkTreePath *path = NULL;
+ g_return_val_if_fail (package_id != NULL, NULL);
g_object_set_data (G_OBJECT(model), "_path", (gpointer) &path);
- gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) gpk_update_viewer_find_iter_model_cb, (gpointer) id);
+ gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) gpk_update_viewer_find_iter_model_cb, (gpointer) package_id);
g_object_steal_data (G_OBJECT(model), "_path");
return path;
}
@@ -633,6 +634,7 @@ gpk_update_viewer_progress_cb (PkProgress *progress, PkProgressType type, GMainL
gchar *package_id;
GtkWidget *widget;
PkInfoEnum info = PK_INFO_ENUM_UNKNOWN;
+ gchar *text;
g_object_get (progress,
"status", &status,
@@ -662,8 +664,29 @@ gpk_update_viewer_progress_cb (PkProgress *progress, PkProgressType type, GMainL
/* update icon */
path = gpk_update_viewer_model_get_path (model, package_id);
if (path == NULL) {
- egg_debug ("not found ID for package");
- goto out;
+ text = gpk_package_id_format_twoline (package_id, NULL); //TODO: summary
+ egg_debug ("adding: id=%s, text=%s", package_id, text);
+ gtk_list_store_append (array_store_updates, &iter);
+ gtk_list_store_set (array_store_updates, &iter,
+ GPK_UPDATES_COLUMN_TEXT, text,
+ GPK_UPDATES_COLUMN_ID, package_id,
+ GPK_UPDATES_COLUMN_INFO, PK_INFO_ENUM_NORMAL, //TODO info
+ GPK_UPDATES_COLUMN_SELECT, TRUE,
+ GPK_UPDATES_COLUMN_SENSITIVE, FALSE,
+ GPK_UPDATES_COLUMN_CLICKABLE, FALSE,
+ GPK_UPDATES_COLUMN_RESTART, PK_RESTART_ENUM_NONE,
+ GPK_UPDATES_COLUMN_STATUS, PK_INFO_ENUM_UNKNOWN,
+ GPK_UPDATES_COLUMN_SIZE, 0,
+ GPK_UPDATES_COLUMN_SIZE_DISPLAY, 0,
+ GPK_UPDATES_COLUMN_PERCENTAGE, 0,
+ GPK_UPDATES_COLUMN_PULSE, -1,
+ -1);
+ g_free (text);
+ path = gpk_update_viewer_model_get_path (model, package_id);
+ if (path == NULL) {
+ egg_warning ("found no package %s", package_id);
+ goto out;
+ }
}
gtk_tree_model_get_iter (model, &iter, path);
@@ -688,15 +711,10 @@ gpk_update_viewer_progress_cb (PkProgress *progress, PkProgressType type, GMainL
gtk_tree_path_free (path);
- /* set package description */
- //widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_package"));
- //gtk_label_set_label (GTK_LABEL (widget), item->summary);
-
-
} else if (type == PK_PROGRESS_TYPE_STATUS) {
GdkWindow *window;
- const gchar *text;
+ const gchar *title;
GdkDisplay *display;
GdkCursor *cursor;
@@ -719,44 +737,33 @@ gpk_update_viewer_progress_cb (PkProgress *progress, PkProgressType type, GMainL
gdk_cursor_unref (cursor);
}
- /* clear package */
- if (status == PK_STATUS_ENUM_WAIT) {
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_package"));
- gtk_label_set_label (GTK_LABEL (widget), "");
- }
-
/* set status */
widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_status"));
if (status == PK_STATUS_ENUM_FINISHED) {
gtk_label_set_label (GTK_LABEL (widget), "");
widget = GTK_WIDGET (gtk_builder_get_object (builder, "image_progress"));
gtk_widget_hide (widget);
- }
- if (status == PK_STATUS_ENUM_QUERY || status == PK_STATUS_ENUM_SETUP) {
- /* TRANSLATORS: querying update array */
- text = _("Getting the array of updates");
- } else {
- text = gpk_status_enum_to_localised_text (status);
- }
-
- /* set label */
- gtk_label_set_label (GTK_LABEL (widget), text);
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "image_progress"));
-
- /* set icon */
- gtk_image_set_from_icon_name (GTK_IMAGE (widget), gpk_status_enum_to_icon_name (status), GTK_ICON_SIZE_BUTTON);
- gtk_widget_show (widget);
-
- /* clear UI */
- if (status == PK_STATUS_ENUM_FINISHED) {
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "label_package"));
- gtk_label_set_label (GTK_LABEL (widget), "");
widget = GTK_WIDGET (gtk_builder_get_object (builder, "progressbar_progress"));
gtk_widget_hide (widget);
widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_quit"));
gtk_widget_set_sensitive (widget, TRUE);
+ } else {
+ if (status == PK_STATUS_ENUM_QUERY || status == PK_STATUS_ENUM_SETUP) {
+ /* TRANSLATORS: querying update array */
+ title = _("Getting the list of updates");
+ } else if (status == PK_STATUS_ENUM_WAIT) {
+ title = "";
+ } else {
+ title = gpk_status_enum_to_localised_text (status);
+ }
+ gtk_label_set_label (GTK_LABEL (widget), title);
+
+ /* set icon */
+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "image_progress"));
+ gtk_image_set_from_icon_name (GTK_IMAGE (widget), gpk_status_enum_to_icon_name (status), GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (widget);
}
} else if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
@@ -1706,88 +1713,6 @@ out:
g_object_unref (results);
}
-#if 0
-/**
- * gpk_update_viewer_deps_update_event_cb:
- **/
-static void
-gpk_update_viewer_deps_update_event_cb (gpointer *helper, GtkResponseType type, GPtrArray *deps_array, gpointer data)
-{
- GtkTreeView *treeview;
- GtkTreeModel *model;
- gboolean valid;
- GtkTreeIter iter;
- gchar *package_id;
- gchar *package_id_temp;
- guint len;
- guint i;
- gboolean found;
- gchar *text;
- const PkItemPackage *item;
-
- /* get model */
- treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "treeview_updates"));
- model = gtk_tree_view_get_model (treeview);
-
- /* need to select or add packages in deps_array */
- len = deps_array->len;
- for (i=0; i<len; i++) {
- item = g_ptr_array_index (deps_array, i);
- found = FALSE;
-
- /* find it and select it */
- valid = gtk_tree_model_get_iter_first (model, &iter);
- while (valid && !found) {
- gtk_tree_model_get (model, &iter, GPK_UPDATES_COLUMN_ID, &package_id_temp, -1);
-
- /* we found a match */
- if (g_strcmp0 (package_id_temp, item->package_id)) {
- egg_debug ("selecting %s", item->package_id);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- GPK_UPDATES_COLUMN_SELECT, TRUE, -1);
- found = TRUE;
- }
-
- g_free (package_id_temp);
- valid = gtk_tree_model_iter_next (model, &iter);
- }
-
- /* not found, so add */
- if (!found) {
- text = gpk_package_id_format_twoline (item->package_id, item->summary);
- egg_debug ("adding: id=%s, text=%s", item->package_id, text);
- gtk_list_store_append (array_store_updates, &iter);
- gtk_list_store_set (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_SELECT, TRUE,
- GPK_UPDATES_COLUMN_SENSITIVE, FALSE,
- GPK_UPDATES_COLUMN_CLICKABLE, FALSE,
- GPK_UPDATES_COLUMN_RESTART, PK_RESTART_ENUM_NONE,
- GPK_UPDATES_COLUMN_STATUS, PK_INFO_ENUM_UNKNOWN,
- GPK_UPDATES_COLUMN_SIZE, 0,
- GPK_UPDATES_COLUMN_SIZE_DISPLAY, 0,
- GPK_UPDATES_COLUMN_PERCENTAGE, 0,
- GPK_UPDATES_COLUMN_PULSE, -1,
- -1);
- g_free (text);
- g_free (package_id);
- }
- }
-
- /* if there are no entries selected, deselect the button */
- gpk_update_viewer_reconsider_info (model);
-
- /* actually install packages this time */
- pk_task_update_packages_async (task, install_package_ids, cancellable,
- (PkProgressCallback) gpk_update_viewer_progress_cb, NULL,
- (GAsyncReadyCallback) gpk_update_viewer_update_packages_cb, loop);
-out:
- return;
-}
-#endif
-
/**
* gpk_update_viewer_repo_array_changed_cb:
**/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]