[epiphany/wip/exalm/cleanups-again] Simplify bookmark opening
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/wip/exalm/cleanups-again] Simplify bookmark opening
- Date: Fri, 25 Feb 2022 14:13:02 +0000 (UTC)
commit 44db74a93675e00b153f8f65a5e4de06f9b677ef
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Fri Feb 25 19:01:17 2022 +0500
Simplify bookmark opening
Remove the win.bookmark-open action as it's only used from one place.
Instead, just inline that code.
Since this is the last use of ephy_link_flags_from_current_event(), inline
it as well. While it means we're still using ephy_gui_get_current_event(),
at this point it's very close to the actual event handling and can be
replaced relatively easily in GTK4 - unlike when it's in a GAction.
src/bookmarks/ephy-bookmarks-popover.c | 88 ++++++++++++++--------------------
src/ephy-link.c | 13 -----
src/ephy-link.h | 2 -
src/ephy-location-controller.c | 4 +-
src/ephy-window.c | 1 -
src/window-commands.c | 14 ------
6 files changed, 39 insertions(+), 83 deletions(-)
---
diff --git a/src/bookmarks/ephy-bookmarks-popover.c b/src/bookmarks/ephy-bookmarks-popover.c
index 779b9b58f..84d951fd1 100644
--- a/src/bookmarks/ephy-bookmarks-popover.c
+++ b/src/bookmarks/ephy-bookmarks-popover.c
@@ -26,6 +26,8 @@
#include "ephy-bookmark-row.h"
#include "ephy-bookmarks-manager.h"
#include "ephy-debug.h"
+#include "ephy-gui.h"
+#include "ephy-link.h"
#include "ephy-shell.h"
#include "ephy-window.h"
@@ -63,7 +65,7 @@ tag_detail_back (EphyBookmarksPopover *self)
"default");
while ((row = gtk_list_box_get_row_at_index (GTK_LIST_BOX (self->tag_detail_list_box), 0)))
- gtk_container_remove (GTK_CONTAINER (self->tag_detail_list_box), GTK_WIDGET (row));
+ gtk_list_box_remove (GTK_LIST_BOX (self->tag_detail_list_box), GTK_WIDGET (row));
}
static void
@@ -80,7 +82,7 @@ remove_bookmark_row (GtkListBox *list_box,
if (g_strcmp0 (type, EPHY_LIST_BOX_ROW_TYPE_BOOKMARK) == 0 &&
g_strcmp0 (ephy_bookmark_row_get_bookmark_url (EPHY_BOOKMARK_ROW (row)), url) == 0) {
- gtk_container_remove (GTK_CONTAINER (list_box), GTK_WIDGET (row));
+ gtk_list_box_remove (list_box, GTK_WIDGET (row));
break;
}
}
@@ -114,7 +116,7 @@ ephy_bookmarks_popover_bookmark_tag_added_cb (EphyBookmarksPopover *self,
GtkWidget *bookmark_row;
bookmark_row = create_bookmark_row (bookmark, self);
- gtk_container_add (GTK_CONTAINER (self->tag_detail_list_box), bookmark_row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tag_detail_list_box), bookmark_row);
}
exists = FALSE;
@@ -132,7 +134,7 @@ ephy_bookmarks_popover_bookmark_tag_added_cb (EphyBookmarksPopover *self,
if (!exists) {
GtkWidget *tag_row = create_tag_row (tag);
- gtk_container_add (GTK_CONTAINER (self->tags_list_box), tag_row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tags_list_box), tag_row);
}
}
@@ -170,7 +172,7 @@ ephy_bookmarks_popover_bookmark_tag_removed_cb (EphyBookmarksPopover *self,
if (!exists) {
GtkWidget *row = create_bookmark_row (bookmark, self);
- gtk_container_add (GTK_CONTAINER (self->tags_list_box), row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tags_list_box), row);
}
}
@@ -196,7 +198,7 @@ ephy_bookmarks_popover_bookmark_tag_removed_cb (EphyBookmarksPopover *self,
const char *title = g_object_get_data (G_OBJECT (row), "title");
if (g_strcmp0 (title, tag) == 0)
- gtk_container_remove (GTK_CONTAINER (self->tags_list_box), GTK_WIDGET (row));
+ gtk_list_box_remove (GTK_LIST_BOX (self->tags_list_box), GTK_WIDGET (row));
}
}
}
@@ -239,9 +241,9 @@ create_tag_row (const char *tag)
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
if (g_strcmp0 (tag, EPHY_BOOKMARKS_FAVORITES_TAG) == 0) {
- image = gtk_image_new_from_icon_name ("emblem-favorite-symbolic", GTK_ICON_SIZE_MENU);
+ image = gtk_image_new_from_icon_name ("emblem-favorite-symbolic");
} else {
- image = gtk_image_new_from_icon_name ("ephy-bookmark-tag-symbolic", GTK_ICON_SIZE_MENU);
+ image = gtk_image_new_from_icon_name ("ephy-bookmark-tag-symbolic");
}
label = gtk_label_new (tag);
@@ -249,11 +251,10 @@ create_tag_row (const char *tag)
gtk_label_set_xalign (GTK_LABEL (label), 0);
gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
- gtk_box_pack_start (GTK_BOX (box), image, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
+ gtk_box_append (GTK_BOX (box), image);
+ gtk_box_append (GTK_BOX (box), label);
- gtk_container_add (GTK_CONTAINER (row), box);
- gtk_widget_show_all (row);
+ gtk_list_box_row_set_child (GTK_LIST_BOX_ROW (row), box);
return row;
}
@@ -271,7 +272,7 @@ ephy_bookmarks_popover_bookmark_added_cb (EphyBookmarksPopover *self,
if (g_sequence_is_empty (ephy_bookmark_get_tags (bookmark))) {
row = create_bookmark_row (bookmark, self);
- gtk_container_add (GTK_CONTAINER (self->tags_list_box), row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tags_list_box), row);
}
if (strcmp (gtk_stack_get_visible_child_name (GTK_STACK (self->toplevel_stack)), "empty-state") == 0)
@@ -313,7 +314,7 @@ ephy_bookmarks_popover_tag_created_cb (EphyBookmarksPopover *self,
g_assert (EPHY_IS_BOOKMARKS_MANAGER (manager));
tag_row = create_tag_row (tag);
- gtk_container_add (GTK_CONTAINER (self->tags_list_box), tag_row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tags_list_box), tag_row);
}
static void
@@ -328,8 +329,8 @@ ephy_bookmarks_popover_tag_deleted_cb (EphyBookmarksPopover *self,
g_assert (EPHY_IS_BOOKMARKS_MANAGER (manager));
row = gtk_list_box_get_row_at_index (GTK_LIST_BOX (self->tags_list_box), position);
- gtk_container_remove (GTK_CONTAINER (self->tags_list_box),
- GTK_WIDGET (row));
+ gtk_list_box_remove (GTK_LIST_BOX (self->tags_list_box),
+ GTK_WIDGET (row));
if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (self->toplevel_stack)), "tag_detail") == 0 &&
g_strcmp0 (self->tag_detail_tag, tag) == 0) {
@@ -367,16 +368,6 @@ tags_list_box_sort_func (GtkListBoxRow *row1,
return g_strcmp0 (title1, title2);
}
-static void
-ephy_bookmarks_popover_actions_tag_detail_back (GSimpleAction *action,
- GVariant *value,
- gpointer user_data)
-{
- EphyBookmarksPopover *self = user_data;
-
- tag_detail_back (self);
-}
-
static void
ephy_bookmarks_popover_show_tag_detail (EphyBookmarksPopover *self,
const char *tag)
@@ -392,7 +383,7 @@ ephy_bookmarks_popover_show_tag_detail (EphyBookmarksPopover *self,
GtkWidget *row;
row = create_bookmark_row (bookmark, self);
- gtk_container_add (GTK_CONTAINER (self->tag_detail_list_box), row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tag_detail_list_box), row);
}
gtk_label_set_label (GTK_LABEL (self->tag_detail_label), tag);
@@ -411,19 +402,21 @@ ephy_bookmarks_popover_open_bookmark (EphyBookmarksPopover *self,
GtkListBoxRow *row)
{
GtkWidget *window;
- GActionGroup *action_group;
- GAction *action;
const char *url;
+ GdkEventType type = GDK_NOTHING;
+ guint state = 0, button = (guint) - 1;
+ EphyLinkFlags flags;
window = gtk_widget_get_ancestor (GTK_WIDGET (self), EPHY_TYPE_WINDOW);
g_assert (EPHY_IS_WINDOW (window));
- action_group = gtk_widget_get_action_group (window, "win");
- g_assert (action_group != NULL);
- action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "open-bookmark");
- g_assert (action != NULL);
url = ephy_bookmark_row_get_bookmark_url (EPHY_BOOKMARK_ROW (row));
- g_action_activate (action, g_variant_new_string (url));
+ ephy_gui_get_current_event (&type, &state, &button, NULL);
+ flags = ephy_link_flags_from_modifiers (state, button == GDK_BUTTON_MIDDLE &&
+ (type == GDK_BUTTON_PRESS ||
+ type == GDK_BUTTON_RELEASE));
+
+ ephy_link_open (EPHY_LINK (window), url, NULL, flags | EPHY_LINK_BOOKMARK);
}
static void
@@ -447,6 +440,7 @@ ephy_bookmarks_popover_list_box_row_activated_cb (EphyBookmarksPopover *self,
}
}
+/*
static gboolean
ephy_bookmarks_popover_list_box_button_release_event_cb (EphyBookmarksPopover *self,
GdkEvent *event,
@@ -462,6 +456,7 @@ ephy_bookmarks_popover_list_box_button_release_event_cb (EphyBookmarksPopover *s
return GDK_EVENT_STOP;
}
+*/
static void
ephy_bookmarks_popover_finalize (GObject *object)
@@ -487,11 +482,10 @@ ephy_bookmarks_popover_class_init (EphyBookmarksPopoverClass *klass)
gtk_widget_class_bind_template_child (widget_class, EphyBookmarksPopover, tags_list_box);
gtk_widget_class_bind_template_child (widget_class, EphyBookmarksPopover, tag_detail_list_box);
gtk_widget_class_bind_template_child (widget_class, EphyBookmarksPopover, tag_detail_label);
-}
-static const GActionEntry entries[] = {
- { "tag-detail-back", ephy_bookmarks_popover_actions_tag_detail_back }
-};
+ gtk_widget_class_install_action (widget_class, "popover.tag-detail-back", NULL,
+ (GtkWidgetActionActivateFunc)tag_detail_back);
+}
static void
ephy_bookmarks_popover_init (EphyBookmarksPopover *self)
@@ -499,18 +493,11 @@ ephy_bookmarks_popover_init (EphyBookmarksPopover *self)
GSequence *tags;
GSequenceIter *iter;
g_autoptr (GSequence) bookmarks = NULL;
- g_autoptr (GSimpleActionGroup) group = NULL;
gtk_widget_init_template (GTK_WIDGET (self));
self->manager = ephy_shell_get_bookmarks_manager (ephy_shell_get_default ());
- group = g_simple_action_group_new ();
- g_action_map_add_action_entries (G_ACTION_MAP (group), entries,
- G_N_ELEMENTS (entries), self);
- gtk_widget_insert_action_group (GTK_WIDGET (self), "popover",
- G_ACTION_GROUP (group));
-
gtk_list_box_bind_model (GTK_LIST_BOX (self->bookmarks_list_box),
G_LIST_MODEL (self->manager),
create_bookmark_row,
@@ -535,7 +522,7 @@ ephy_bookmarks_popover_init (EphyBookmarksPopover *self)
if (!ephy_bookmarks_manager_has_bookmarks_with_tag (self->manager, tag)) {
tag_row = create_tag_row (tag);
- gtk_container_add (GTK_CONTAINER (self->tags_list_box), tag_row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tags_list_box), tag_row);
}
}
@@ -547,8 +534,7 @@ ephy_bookmarks_popover_init (EphyBookmarksPopover *self)
GtkWidget *bookmark_row;
bookmark_row = create_bookmark_row (bookmark, self);
- gtk_widget_show_all (bookmark_row);
- gtk_container_add (GTK_CONTAINER (self->tags_list_box), bookmark_row);
+ gtk_list_box_append (GTK_LIST_BOX (self->tags_list_box), bookmark_row);
}
g_signal_connect_object (self->manager, "bookmark-added",
@@ -579,9 +565,9 @@ ephy_bookmarks_popover_init (EphyBookmarksPopover *self)
g_signal_connect_object (self->tag_detail_list_box, "row-activated",
G_CALLBACK (ephy_bookmarks_popover_list_box_row_activated_cb),
self, G_CONNECT_SWAPPED);
- g_signal_connect_object (self->bookmarks_list_box, "button-release-event",
- G_CALLBACK (ephy_bookmarks_popover_list_box_button_release_event_cb),
- self, G_CONNECT_SWAPPED);
+// g_signal_connect_object (self->bookmarks_list_box, "button-release-event",
+// G_CALLBACK (ephy_bookmarks_popover_list_box_button_release_event_cb),
+// self, G_CONNECT_SWAPPED);
}
EphyBookmarksPopover *
diff --git a/src/ephy-link.c b/src/ephy-link.c
index 61dbb3735..07ca9a26f 100644
--- a/src/ephy-link.c
+++ b/src/ephy-link.c
@@ -115,16 +115,3 @@ ephy_link_flags_from_modifiers (GdkModifierType modifiers,
return 0;
}
-
-EphyLinkFlags
-ephy_link_flags_from_current_event (void)
-{
- GdkEventType type = GDK_NOTHING;
- guint state = 0, button = (guint) - 1;
-
- ephy_gui_get_current_event (&type, &state, &button, NULL);
-
- return ephy_link_flags_from_modifiers (state, button == GDK_BUTTON_MIDDLE &&
- (type == GDK_BUTTON_PRESS ||
- type == GDK_BUTTON_RELEASE));
-}
diff --git a/src/ephy-link.h b/src/ephy-link.h
index ab3667538..7ec3c9ae8 100644
--- a/src/ephy-link.h
+++ b/src/ephy-link.h
@@ -61,6 +61,4 @@ EphyEmbed *ephy_link_open (EphyLink *link,
EphyLinkFlags ephy_link_flags_from_modifiers (GdkModifierType modifiers,
gboolean middle_click);
-EphyLinkFlags ephy_link_flags_from_current_event (void);
-
G_END_DECLS
diff --git a/src/ephy-location-controller.c b/src/ephy-location-controller.c
index 7d39a16b4..3f0db081d 100644
--- a/src/ephy-location-controller.c
+++ b/src/ephy-location-controller.c
@@ -86,7 +86,7 @@ entry_activate_cb (EphyLocationEntry *entry,
const char *content;
char *address;
char *effective_address;
- GtkEntry *inner_entry;
+ GtkWidget *inner_entry;
if (controller->sync_address_is_blocked) {
controller->sync_address_is_blocked = FALSE;
@@ -94,7 +94,7 @@ entry_activate_cb (EphyLocationEntry *entry,
}
inner_entry = ephy_location_entry_get_entry (entry);
- content = gtk_entry_get_text (inner_entry);
+ content = gtk_entry_get_text (GTK_ENTRY (inner_entry));
if (content == NULL || content[0] == '\0')
return;
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 18ebca4e6..fef509336 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -835,7 +835,6 @@ static const GActionEntry window_entries [] = {
{ "find", window_cmd_find },
{ "find-prev", window_cmd_find_prev },
{ "find-next", window_cmd_find_next },
- { "open-bookmark", window_cmd_open_bookmark, "s" },
{ "bookmark-page", window_cmd_bookmark_page },
{ "bookmarks", window_cmd_bookmarks },
{ "show-downloads", window_cmd_show_downloads },
diff --git a/src/window-commands.c b/src/window-commands.c
index d75b2e070..2ebc302aa 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -2398,20 +2398,6 @@ window_cmd_find_next (GSimpleAction *action,
ephy_find_toolbar_find_next (toolbar);
}
-void
-window_cmd_open_bookmark (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
-{
- const gchar *address;
- EphyLinkFlags flags;
-
- address = g_variant_get_string (parameter, NULL);
- flags = ephy_link_flags_from_current_event () | EPHY_LINK_BOOKMARK;
-
- ephy_link_open (EPHY_LINK (user_data), address, NULL, flags);
-}
-
void
window_cmd_bookmark_page (GSimpleAction *action,
GVariant *parameter,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]