diff options
-rw-r--r-- | src/ephy-history-dialog.c | 62 |
1 files changed, 15 insertions, 47 deletions
diff --git a/src/ephy-history-dialog.c b/src/ephy-history-dialog.c index b20d066e0..4ffeee64c 100644 --- a/src/ephy-history-dialog.c +++ b/src/ephy-history-dialog.c @@ -37,6 +37,8 @@ #include <ctype.h> #include <gtk/gtk.h> #include <glib/gi18n.h> +#define HANDY_USE_UNSTABLE_API +#include <handy.h> #include <string.h> #include <time.h> @@ -83,8 +85,8 @@ static gboolean add_urls_source (EphyHistoryDialog *self); static EphyHistoryURL * get_url_from_row (GtkListBoxRow *row) { - return ephy_history_url_new (g_object_get_data (G_OBJECT (row), "url"), - g_object_get_data (G_OBJECT (row), "title"), + return ephy_history_url_new (hdy_action_row_get_subtitle (HDY_ACTION_ROW (row)), + hdy_action_row_get_title (HDY_ACTION_ROW (row)), 0, 0, 0); @@ -246,63 +248,26 @@ create_row (EphyHistoryDialog *self, EphyHistoryURL *url) { EphyEmbedShell *shell = ephy_embed_shell_get_default (); - GtkWidget *grid; - GtkWidget *title; - GtkWidget *address; GtkWidget *date; GtkWidget *row; GtkWidget *separator; GtkWidget *button; - PangoAttrList *attrlist; - PangoAttribute *attr; /* Row */ - row = gtk_list_box_row_new (); - g_object_set_data (G_OBJECT (row), "title", g_strdup (url->title)); - g_object_set_data (G_OBJECT (row), "url", g_strdup (url->url)); - - /* Grid */ - grid = gtk_grid_new (); - gtk_widget_set_margin_start (grid, 6); - gtk_widget_set_margin_end (grid, 6); - gtk_widget_set_margin_top (grid, 6); - gtk_widget_set_margin_bottom (grid, 6); - gtk_grid_set_column_spacing (GTK_GRID(grid), 12); - gtk_grid_set_row_spacing (GTK_GRID(grid), 6); - gtk_widget_set_tooltip_text (grid, url->url); - - /* Title */ - title = gtk_label_new (url->title); - gtk_label_set_ellipsize (GTK_LABEL(title), PANGO_ELLIPSIZE_END); - gtk_widget_set_hexpand (title, TRUE); - gtk_label_set_xalign (GTK_LABEL(title), 0); - - attrlist = pango_attr_list_new (); - attr = pango_attr_weight_new (PANGO_WEIGHT_SEMIBOLD); - pango_attr_list_insert (attrlist, attr); - gtk_label_set_attributes (GTK_LABEL (title), attrlist); - pango_attr_list_unref (attrlist); - - gtk_grid_attach (GTK_GRID (grid), title, 0, 0, 1, 1); - - /* Address */ - address = gtk_label_new (url->url); - gtk_label_set_ellipsize (GTK_LABEL(address), PANGO_ELLIPSIZE_END); - gtk_label_set_xalign (GTK_LABEL(address), 0); - gtk_widget_set_sensitive (address, FALSE); - - gtk_grid_attach (GTK_GRID (grid), address, 0, 1, 1, 1); + row = GTK_WIDGET (hdy_action_row_new ()); + hdy_action_row_set_title (HDY_ACTION_ROW (row), url->title); + hdy_action_row_set_subtitle (HDY_ACTION_ROW (row), url->url); + gtk_widget_set_tooltip_text (row, url->url); /* Date */ date = gtk_label_new (ephy_time_helpers_utf_friendly_time (url->last_visit_time / 1000000)); gtk_label_set_ellipsize (GTK_LABEL(date), PANGO_ELLIPSIZE_END); gtk_label_set_xalign (GTK_LABEL (date), 0); - gtk_grid_attach (GTK_GRID (grid), date, 0, 2, 1, 1); - /* Separator */ separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); - gtk_grid_attach (GTK_GRID (grid), separator, 1, 0, 1, 3); + gtk_widget_set_margin_top (separator, 8); + gtk_widget_set_margin_bottom (separator, 8); /* Button */ button = gtk_button_new_from_icon_name ("user-trash-symbolic", GTK_ICON_SIZE_BUTTON); @@ -311,11 +276,14 @@ create_row (EphyHistoryDialog *self, gtk_widget_set_tooltip_text (button, _("Remove the selected pages from history")); g_signal_connect (button, "clicked", G_CALLBACK (forget_clicked), self); gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); - gtk_grid_attach (GTK_GRID (grid), button, 2, 0, 1, 3); + + /* Added in reverse order because actions are packed from the end. */ + hdy_action_row_add_action (HDY_ACTION_ROW (row), button); + hdy_action_row_add_action (HDY_ACTION_ROW (row), separator); + hdy_action_row_add_action (HDY_ACTION_ROW (row), date); gtk_widget_set_sensitive (button, ephy_embed_shell_get_mode (shell) != EPHY_EMBED_SHELL_MODE_INCOGNITO); - gtk_container_add (GTK_CONTAINER (row), grid); gtk_widget_show_all (row); return row; |