commit gnome-packagekit for openSUSE:11.4
Hello community, here is the log from the commit of package gnome-packagekit for openSUSE:11.4 checked in at Thu Jul 7 16:15:29 CEST 2011. -------- --- old-versions/11.4/all/gnome-packagekit/gnome-packagekit.changes 2011-02-13 17:22:51.000000000 +0100 +++ 11.4/gnome-packagekit/gnome-packagekit.changes 2011-07-04 08:35:36.000000000 +0200 @@ -1,0 +2,6 @@ +Mon Jul 4 06:33:17 UTC 2011 - glin@suse.com + +- Add gnome-packagekit-pack-list-tabs.patch: fix the oversized + dialog. bnc#699181,bgo#653626 + +------------------------------------------------------------------- Package does not exist at destination yet. Using Fallback old-versions/11.4/all/gnome-packagekit Destination is old-versions/11.4/UPDATES/all/gnome-packagekit calling whatdependson for 11.4-i586 New: ---- gnome-packagekit-pack-list-tabs.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-packagekit.spec ++++++ --- /var/tmp/diff_new_pack.b1RCml/_old 2011-07-07 16:15:05.000000000 +0200 +++ /var/tmp/diff_new_pack.b1RCml/_new 2011-07-07 16:15:05.000000000 +0200 @@ -19,7 +19,7 @@ Name: gnome-packagekit Version: 2.32.0 -Release: 3 +Release: 7.<RELEASE8> License: GPLv2+ Summary: Applications for the PackageKit API Url: http://packagekit.org/ @@ -37,6 +37,8 @@ Patch7: gnome-packagekit-opensuse-libexec.patch # PATCH-FIX-OPENSUSE gnome-packagekit-gpk-prefs-desktop.patch bnc380665 vuntz@opensuse.org -- Change the name of the gpk-prefs desktop file to not create confusion with gpk-update-viewer. We patch to automatically get the new translation from the po file Patch9: gnome-packagekit-gpk-prefs-desktop.patch +# PATCH-FIX-UPSTREAM gnome-packagekit-pack-list-tabs.patch bnc#699181,bgo#653626 glin@suse.com -- Pack the package lists into different tabs so that the window size of the dialog won't become over the screen +Patch10: gnome-packagekit-pack-list-tabs.patch BuildRequires: PackageKit-devel BuildRequires: dbus-1-devel BuildRequires: desktop-file-utils @@ -94,6 +96,7 @@ %patch6 -p1 %patch7 -p1 %patch9 -p1 +%patch10 -p1 %build #autoreconf -f -i ++++++ gnome-packagekit-pack-list-tabs.patch ++++++ diff --git a/src/gpk-dialog.c b/src/gpk-dialog.c index 5feb288..31b8c17 100644 --- a/src/gpk-dialog.c +++ b/src/gpk-dialog.c @@ -365,3 +365,112 @@ out: return TRUE; } +/** + * gpk_dialog_embed_tabbed_widget + **/ +gboolean +gpk_dialog_embed_tabbed_widget (GtkDialog *dialog, GtkNotebook *tabbed_widget) +{ + GtkWidget *widget; + + if (! GTK_IS_NOTEBOOK (tabbed_widget)) + return FALSE; + + widget = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_container_add_with_properties (GTK_CONTAINER (widget), + GTK_WIDGET (tabbed_widget), + "expand", FALSE, + "fill", FALSE, + NULL); + + return TRUE; +} + +/** + * gpk_dialog_tabbed_package_list_widget: + **/ +gboolean +gpk_dialog_tabbed_package_list_widget (GtkWidget *tab_page, GPtrArray *array) +{ + GtkWidget *scroll; + GtkListStore *store; + GtkWidget *widget; + const guint row_height = 48; + + /* convert to a store */ + store = gpk_dialog_package_array_to_list_store (array); + + /* create a treeview to hold the store */ + widget = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); + gpk_dialog_treeview_for_package_list (GTK_TREE_VIEW (widget)); + gtk_widget_show (widget); + + /* scroll the treeview */ + scroll = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scroll), widget); + gtk_widget_show (scroll); + + /* add some spacing to conform to the GNOME HIG */ + gtk_container_set_border_width (GTK_CONTAINER (scroll), 6); + + /* only allow more space if there are a large number of items */ + if (array->len > 5) { + gtk_widget_set_size_request (GTK_WIDGET (scroll), -1, (row_height * 5) + 8); + } else if (array->len > 1) { + gtk_widget_set_size_request (GTK_WIDGET (scroll), -1, (row_height * array->len) + 8); + } + + /* add scrolled window */ + gtk_container_add_with_properties (GTK_CONTAINER (tab_page), scroll, + "expand", TRUE, + "fill", TRUE, + NULL); + + /* free the store */ + g_signal_connect (G_OBJECT (tab_page), "unrealize", + G_CALLBACK (gpk_dialog_widget_unrealize_unref_cb), store); + + return TRUE; +} + +/** + * gpk_dialog_tabbed_download_size_widget: + **/ +gboolean +gpk_dialog_tabbed_download_size_widget (GtkWidget *tab_page, const gchar *title, guint64 size) +{ + GtkWidget *label; + GtkWidget *hbox; + gchar *text = NULL; + gchar *size_str = NULL; + + /* size is zero, don't show "0 bytes" */ + if (size == 0) { + label = gtk_label_new (title); + gtk_container_add_with_properties (GTK_CONTAINER (tab_page), label, + "expand", FALSE, + "fill", FALSE, + NULL); + goto out; + } + + /* add a hbox with the size for deps screen */ + size_str = g_format_size_for_display (size); + text = g_strdup_printf ("%s: %s", title, size_str); + hbox = gtk_hbox_new (FALSE, 6); + gtk_container_add_with_properties (GTK_CONTAINER (tab_page), hbox, + "expand", FALSE, + "fill", FALSE, + NULL); + + /* add a label */ + label = gtk_label_new (text); + gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); + gtk_widget_show (hbox); +out: + gtk_widget_show (label); + g_free (text); + g_free (size_str); + return TRUE; +} diff --git a/src/gpk-dialog.h b/src/gpk-dialog.h index 233be22..3fd252b 100644 --- a/src/gpk-dialog.h +++ b/src/gpk-dialog.h @@ -38,6 +38,13 @@ gboolean gpk_dialog_embed_download_size_widget (GtkDialog *dialog, const gchar *title, guint64 size); gchar *gpk_dialog_package_id_name_join_locale (gchar **package_ids); +gboolean gpk_dialog_embed_tabbed_widget (GtkDialog *dialog, + GtkNotebook *tabbed_widget); +gboolean gpk_dialog_tabbed_package_list_widget (GtkWidget *tab_page, + GPtrArray *array); +gboolean gpk_dialog_tabbed_download_size_widget (GtkWidget *tab_page, + const gchar *title, + guint64 size); G_END_DECLS diff --git a/src/gpk-task.c b/src/gpk-task.c index 1fa7c66..41e513c 100644 --- a/src/gpk-task.c +++ b/src/gpk-task.c @@ -378,7 +378,10 @@ out: * gpk_task_add_dialog_deps_section: **/ static void -gpk_task_add_dialog_deps_section (PkTask *task, PkPackageSack *sack, PkInfoEnum info) +gpk_task_add_dialog_deps_section (PkTask *task, + GtkNotebook *tabbed_widget, + PkPackageSack *sack, + PkInfoEnum info) { PkPackageSack *sack_tmp; GPtrArray *array_tmp = NULL; @@ -386,7 +389,8 @@ gpk_task_add_dialog_deps_section (PkTask *task, PkPackageSack *sack, PkInfoEnum GError *error = NULL; guint64 size; const gchar *title; - GpkTaskPrivate *priv = GPK_TASK(task)->priv; + GtkWidget *tab_page; + GtkWidget *tab_label; sack_tmp = pk_package_sack_filter_by_info (sack, info); if (pk_package_sack_get_size (sack_tmp) == 0) { @@ -394,32 +398,41 @@ gpk_task_add_dialog_deps_section (PkTask *task, PkPackageSack *sack, PkInfoEnum goto out; } + tab_page = gtk_vbox_new (FALSE, 6); + gtk_container_set_border_width (GTK_CONTAINER (tab_page), 12); + /* get the header */ switch (info) { case PK_INFO_ENUM_INSTALLING: /* TRANSLATORS: additional message text for the deps dialog */ title = _("The following software also needs to be installed"); + tab_label = gtk_label_new (_("Install")); break; case PK_INFO_ENUM_REMOVING: case PK_INFO_ENUM_OBSOLETING: /* TRANSLATORS: additional message text for the deps dialog */ title = _("The following software also needs to be removed"); + tab_label = gtk_label_new (_("Remove")); break; case PK_INFO_ENUM_UPDATING: /* TRANSLATORS: additional message text for the deps dialog */ title = _("The following software also needs to be updated"); + tab_label = gtk_label_new (_("Update")); break; case PK_INFO_ENUM_REINSTALLING: /* TRANSLATORS: additional message text for the deps dialog */ title = _("The following software also needs to be re-installed"); + tab_label = gtk_label_new (_("Reinstall")); break; case PK_INFO_ENUM_DOWNGRADING: /* TRANSLATORS: additional message text for the deps dialog */ title = _("The following software also needs to be downgraded"); + tab_label = gtk_label_new (_("Downgrade")); break; default: /* TRANSLATORS: additional message text for the deps dialog (we don't know how it's going to be processed -- eeek) */ title = _("The following software also needs to be processed"); + tab_label = gtk_label_new (_("Other")); break; } @@ -433,8 +446,9 @@ gpk_task_add_dialog_deps_section (PkTask *task, PkPackageSack *sack, PkInfoEnum /* embed title */ array_tmp = pk_package_sack_get_array (sack_tmp); - gpk_dialog_embed_download_size_widget (GTK_DIALOG(priv->current_window), title, size); - gpk_dialog_embed_package_list_widget (GTK_DIALOG(priv->current_window), array_tmp); + gpk_dialog_tabbed_download_size_widget (tab_page, title, size); + gpk_dialog_tabbed_package_list_widget (tab_page, array_tmp); + gtk_notebook_append_page (tabbed_widget, tab_page, tab_label); out: if (array_tmp != NULL) g_ptr_array_unref (array_tmp); @@ -456,6 +470,7 @@ gpk_task_simulate_question (PkTask *task, guint request, PkResults *results) guint inputs; const gchar *title; const gchar *message = NULL; + GtkNotebook *tabbed_widget = NULL; /* save the current request */ priv->request = request; @@ -513,25 +528,36 @@ gpk_task_simulate_question (PkTask *task, guint request, PkResults *results) gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (priv->current_window), "%s", message); #if PK_CHECK_VERSION(0,6,2) + tabbed_widget = GTK_NOTEBOOK (gtk_notebook_new ()); + /* get the details for all the packages */ sack = pk_results_get_package_sack (results); - gpk_task_add_dialog_deps_section (task, sack, PK_INFO_ENUM_INSTALLING); + gpk_task_add_dialog_deps_section (task, tabbed_widget, sack, + PK_INFO_ENUM_INSTALLING); /* TRANSLATORS: additional message text for the deps dialog */ - gpk_task_add_dialog_deps_section (task, sack, PK_INFO_ENUM_REMOVING); + gpk_task_add_dialog_deps_section (task, tabbed_widget, sack, + PK_INFO_ENUM_REMOVING); /* TRANSLATORS: additional message text for the deps dialog */ - gpk_task_add_dialog_deps_section (task, sack, PK_INFO_ENUM_UPDATING); + gpk_task_add_dialog_deps_section (task, tabbed_widget, sack, + PK_INFO_ENUM_UPDATING); /* TRANSLATORS: additional message text for the deps dialog */ - gpk_task_add_dialog_deps_section (task, sack, PK_INFO_ENUM_OBSOLETING); + gpk_task_add_dialog_deps_section (task, tabbed_widget, sack, + PK_INFO_ENUM_OBSOLETING); /* TRANSLATORS: additional message text for the deps dialog */ - gpk_task_add_dialog_deps_section (task, sack, PK_INFO_ENUM_REINSTALLING); + gpk_task_add_dialog_deps_section (task, tabbed_widget, sack, + PK_INFO_ENUM_REINSTALLING); /* TRANSLATORS: additional message text for the deps dialog */ - gpk_task_add_dialog_deps_section (task, sack, PK_INFO_ENUM_DOWNGRADING); + gpk_task_add_dialog_deps_section (task, tabbed_widget, sack, + PK_INFO_ENUM_DOWNGRADING); + + gpk_dialog_embed_tabbed_widget (GTK_DIALOG(priv->current_window), + tabbed_widget); #else /* get all the data */ array = pk_results_get_package_array (results); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de