[epiphany] downloads-popover: Fix visual and layout issues



commit 0fd589c8971ef62abd04b7c796b63eed8415b65e
Author: Iulian Radu <iulian radu67 gmail com>
Date:   Sat Feb 20 15:33:14 2016 +0200

    downloads-popover: Fix visual and layout issues
    
    The complete list of issues and solutions can be found
    in the bug report.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=761857

 lib/widgets/ephy-download-widget.c   |   36 ++++++++++++-----------
 lib/widgets/ephy-downloads-popover.c |   52 +++++++++++++++-------------------
 2 files changed, 42 insertions(+), 46 deletions(-)
---
diff --git a/lib/widgets/ephy-download-widget.c b/lib/widgets/ephy-download-widget.c
index 687212b..8e16bda 100644
--- a/lib/widgets/ephy-download-widget.c
+++ b/lib/widgets/ephy-download-widget.c
@@ -138,11 +138,11 @@ update_download_icon (EphyDownloadWidget *widget)
 
   content_type = ephy_download_get_content_type (widget->download);
   if (content_type)
-    icon = g_content_type_get_icon (content_type);
+    icon = g_content_type_get_symbolic_icon (content_type);
   else
-    icon = g_icon_new_for_string ("package-x-generic", NULL);
+    icon = g_icon_new_for_string ("package-x-generic-symbolic", NULL);
 
-  gtk_image_set_from_gicon (GTK_IMAGE (widget->icon), icon, GTK_ICON_SIZE_DIALOG);
+  gtk_image_set_from_gicon (GTK_IMAGE (widget->icon), icon, GTK_ICON_SIZE_MENU);
   g_object_unref (icon);
 }
 
@@ -150,15 +150,14 @@ static void
 update_download_destination (EphyDownloadWidget *widget)
 {
   char *dest;
-  char *markup;
 
   dest = get_destination_basename_from_download (widget->download);
   if (!dest)
     return;
-  markup = g_markup_printf_escaped ("<b>%s</b>", dest);
+
+  gtk_label_set_label (GTK_LABEL (widget->filename), dest);
+
   g_free (dest);
-  gtk_label_set_markup (GTK_LABEL (widget->filename), markup);
-  g_free (markup);
 }
 
 static void
@@ -365,18 +364,21 @@ ephy_download_widget_constructed (GObject *object)
 
   G_OBJECT_CLASS (ephy_download_widget_parent_class)->constructed (object);
 
-  gtk_widget_set_margin_start (GTK_WIDGET (widget), 5);
-  gtk_widget_set_margin_end (GTK_WIDGET (widget), 5);
+  gtk_widget_set_margin_start (GTK_WIDGET (widget), 12);
+  gtk_widget_set_margin_end (GTK_WIDGET (widget), 12);
+  gtk_widget_set_margin_top (GTK_WIDGET (widget), 12);
+  gtk_widget_set_margin_bottom (GTK_WIDGET (widget), 12);
 
   widget->icon = gtk_image_new ();
-  gtk_widget_set_margin_end (widget->icon, 10);
+  gtk_widget_set_margin_end (widget->icon, 4);
+  gtk_widget_set_halign (widget->icon, GTK_ALIGN_START);
   update_download_icon (widget);
-  gtk_grid_attach (GTK_GRID (widget), widget->icon, 0, 0, 1, 3);
+  gtk_grid_attach (GTK_GRID (widget), widget->icon, 0, 0, 1, 1);
   gtk_widget_show (widget->icon);
 
   widget->filename = gtk_label_new (NULL);
+  gtk_widget_set_hexpand (widget->filename, true);
   gtk_widget_set_valign (widget->filename, GTK_ALIGN_CENTER);
-  gtk_widget_set_margin_bottom (widget->filename, 6);
   gtk_label_set_xalign (GTK_LABEL (widget->filename), 0);
   gtk_label_set_max_width_chars (GTK_LABEL (widget->filename), 30);
   gtk_label_set_ellipsize (GTK_LABEL (widget->filename), PANGO_ELLIPSIZE_END);
@@ -386,10 +388,10 @@ ephy_download_widget_constructed (GObject *object)
 
   widget->progress = gtk_progress_bar_new ();
   gtk_widget_set_valign (widget->progress, GTK_ALIGN_CENTER);
-  gtk_widget_set_margin_start (widget->progress, 2);
-  gtk_widget_set_margin_bottom (widget->progress, 4);
+  gtk_widget_set_margin_top (widget->progress, 6);
+  gtk_widget_set_margin_bottom (widget->progress, 6);
   gtk_progress_bar_set_pulse_step (GTK_PROGRESS_BAR (widget->progress), 0.05);
-  gtk_grid_attach (GTK_GRID (widget), widget->progress, 1, 1, 1, 1);
+  gtk_grid_attach (GTK_GRID (widget), widget->progress, 0, 1, 2, 1);
   if (ephy_download_is_active (widget->download))
           gtk_widget_show (widget->progress);
 
@@ -410,7 +412,7 @@ ephy_download_widget_constructed (GObject *object)
   } else {
           update_status_label (widget, _("Starting…"));
   }
-  gtk_grid_attach (GTK_GRID (widget), widget->status, 1, 2, 1, 1);
+  gtk_grid_attach (GTK_GRID (widget), widget->status, 0, 2, 2, 1);
   gtk_widget_show (widget->status);
 
   if (ephy_download_succeeded (widget->download))
@@ -426,7 +428,7 @@ ephy_download_widget_constructed (GObject *object)
   gtk_widget_set_valign (widget->action_button, GTK_ALIGN_CENTER);
   gtk_widget_set_margin_start (widget->action_button, 10);
   gtk_style_context_add_class (gtk_widget_get_style_context (widget->action_button),
-                               "download-circular-button");
+                               "circular");
   gtk_grid_attach (GTK_GRID (widget), widget->action_button, 3, 0, 1, 3);
   gtk_widget_show (widget->action_button);
 
diff --git a/lib/widgets/ephy-downloads-popover.c b/lib/widgets/ephy-downloads-popover.c
index 48886f8..65d1516 100644
--- a/lib/widgets/ephy-downloads-popover.c
+++ b/lib/widgets/ephy-downloads-popover.c
@@ -36,7 +36,7 @@ struct _EphyDownloadsPopover
 
 G_DEFINE_TYPE (EphyDownloadsPopover, ephy_downloads_popover, GTK_TYPE_POPOVER)
 
-#define DOWNLOADS_BOX_MIN_SIZE 270
+#define DOWNLOADS_BOX_MIN_SIZE 330
 
 static void
 download_box_row_activated_cb (EphyDownloadsPopover *popover,
@@ -163,38 +163,12 @@ static void
 ephy_downloads_popover_init (EphyDownloadsPopover *popover)
 {
   GtkWidget *scrolled_window;
-  GtkWidget *title;
   GtkWidget *vbox, *hbox;
   GList *downloads, *l;
-  char *markup;
   EphyDownloadsManager *manager = ephy_embed_shell_get_downloads_manager (ephy_embed_shell_get_default ());;
 
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
 
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  gtk_widget_set_valign (hbox, GTK_ALIGN_CENTER);
-  gtk_widget_set_margin_top (hbox, 6);
-  gtk_widget_set_margin_end (hbox, 6);
-
-  title = gtk_label_new (NULL);
-  markup = g_strdup_printf ("<b>%s</b>", _("Downloads"));
-  gtk_label_set_markup (GTK_LABEL (title), markup);
-  g_free (markup);
-  gtk_style_context_add_class (gtk_widget_get_style_context (title), GTK_STYLE_CLASS_TITLE);
-  gtk_box_pack_start (GTK_BOX (hbox), title, TRUE, TRUE, 0);
-  gtk_widget_show (title);
-
-  popover->clear_button = gtk_button_new_with_label (_("Clear"));
-  gtk_widget_set_sensitive (popover->clear_button, !ephy_downloads_manager_has_active_downloads (manager));
-  g_signal_connect_swapped (popover->clear_button, "clicked",
-                            G_CALLBACK (clear_button_clicked_cb),
-                            popover);
-  gtk_box_pack_end (GTK_BOX (hbox), popover->clear_button, FALSE, FALSE, 0);
-  gtk_widget_show (popover->clear_button);
-
-  gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
-  gtk_widget_show (hbox);
-
   scrolled_window = gtk_scrolled_window_new (NULL, NULL);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@@ -205,8 +179,10 @@ ephy_downloads_popover_init (EphyDownloadsPopover *popover)
   g_signal_connect_swapped (popover->downloads_box, "row-activated",
                             G_CALLBACK (download_box_row_activated_cb),
                             popover);
-  gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (popover->downloads_box), FALSE);
-  g_object_set (popover->downloads_box, "margin", 12, NULL);
+  gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (popover->downloads_box), TRUE);
+  gtk_list_box_set_selection_mode (GTK_LIST_BOX (popover->downloads_box), GTK_SELECTION_NONE);
+  gtk_style_context_add_class (gtk_widget_get_style_context (popover->downloads_box),
+                               "background");
   gtk_container_add (GTK_CONTAINER (scrolled_window), popover->downloads_box);
   gtk_widget_show (popover->downloads_box);
 
@@ -237,6 +213,24 @@ ephy_downloads_popover_init (EphyDownloadsPopover *popover)
   gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, FALSE, FALSE, 0);
   gtk_widget_show (scrolled_window);
 
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+  gtk_widget_set_valign (hbox, GTK_ALIGN_CENTER);
+  gtk_widget_set_margin_start (hbox, 12);
+  gtk_widget_set_margin_end (hbox, 12);
+  gtk_widget_set_margin_top (hbox, 12);
+  gtk_widget_set_margin_bottom (hbox, 12);
+
+  popover->clear_button = gtk_button_new_with_mnemonic (_("_Clear All"));
+  gtk_widget_set_sensitive (popover->clear_button, !ephy_downloads_manager_has_active_downloads (manager));
+  g_signal_connect_swapped (popover->clear_button, "clicked",
+                            G_CALLBACK (clear_button_clicked_cb),
+                            popover);
+  gtk_box_pack_end (GTK_BOX (hbox), popover->clear_button, FALSE, FALSE, 0);
+  gtk_widget_show (popover->clear_button);
+
+  gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+  gtk_widget_show (hbox);
+
   gtk_container_add (GTK_CONTAINER (popover), vbox);
   gtk_widget_show (vbox);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]