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 - [email protected]
+
+- 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 
[email protected] -- 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 [email protected] -- 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to