aboutsummaryrefslogtreecommitdiffstats
path: root/src/bookmarks/ephy-bookmarksbar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarks/ephy-bookmarksbar.c')
-rw-r--r--src/bookmarks/ephy-bookmarksbar.c67
1 files changed, 13 insertions, 54 deletions
diff --git a/src/bookmarks/ephy-bookmarksbar.c b/src/bookmarks/ephy-bookmarksbar.c
index dce1a15be..e9af82f12 100644
--- a/src/bookmarks/ephy-bookmarksbar.c
+++ b/src/bookmarks/ephy-bookmarksbar.c
@@ -27,6 +27,7 @@
#include "ephy-bookmarks.h"
#include "ephy-shell.h"
#include "ephy-topic-action.h"
+#include "ephy-link.h"
#include "ephy-bookmark-action.h"
#include "ephy-new-bookmark.h"
#include "ephy-stock-icons.h"
@@ -87,61 +88,24 @@ ephy_bookmarksbar_get_type (void)
(GInstanceInitFunc) ephy_bookmarksbar_init
};
+ static const GInterfaceInfo link_info =
+ {
+ NULL,
+ NULL,
+ NULL
+ };
+
type = g_type_register_static (EGG_TYPE_EDITABLE_TOOLBAR,
"EphyBookmarksBar",
&our_info, 0);
+ g_type_add_interface_static (type,
+ EPHY_TYPE_LINK,
+ &link_info);
}
return type;
}
-static void
-open_in_tabs_cb (GtkAction *action, GList *uri_list, EphyBookmarksBar *toolbar)
-{
- EphyTab *tab;
- EphyWindow *window;
- GList *l = uri_list;
-
- g_return_if_fail (l != NULL);
-
- tab = ephy_shell_new_tab (ephy_shell, NULL, NULL, l->data,
- EPHY_NEW_TAB_OPEN_PAGE);
- g_return_if_fail (tab != NULL);
-
- window = EPHY_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (tab)));
- g_return_if_fail (window != NULL);
-
- for (l = l->next; l != NULL; l = l->next)
- {
- ephy_shell_new_tab (ephy_shell, window, NULL, l->data,
- EPHY_NEW_TAB_IN_EXISTING_WINDOW |
- EPHY_NEW_TAB_OPEN_PAGE |
- EPHY_NEW_TAB_APPEND_LAST);
- }
-}
-
-static void
-bookmark_open_in_tab_cb (GtkAction *action, char *location,
- gboolean new_window, EphyBookmarksBar *toolbar)
-{
- EphyNewTabFlags flags = EPHY_NEW_TAB_OPEN_PAGE |
- EPHY_NEW_TAB_JUMP;
-
- if (!new_window)
- {
- flags |= EPHY_NEW_TAB_IN_EXISTING_WINDOW;
- }
-
- ephy_shell_new_tab (ephy_shell, toolbar->priv->window, NULL,
- location, flags);
-}
-
-static void
-bookmark_open_cb (GtkAction *action, char *location, EphyBookmarksBar *toolbar)
-{
- ephy_window_load_url (toolbar->priv->window, location);
-}
-
static gboolean
remove_action_from_model (EggToolbarsModel *model, const char *name)
{
@@ -231,9 +195,6 @@ ephy_bookmarksbar_action_request (EggEditableToolbar *eggtoolbar,
if (ephy_node_has_child (topics, node))
{
action = ephy_topic_action_new (name, node);
-
- g_signal_connect (action, "open_in_tabs",
- G_CALLBACK (open_in_tabs_cb), toolbar);
}
else if (ephy_node_has_child (bmks, node))
{
@@ -242,10 +203,8 @@ ephy_bookmarksbar_action_request (EggEditableToolbar *eggtoolbar,
g_return_if_fail (action != NULL);
- g_signal_connect (action, "open",
- G_CALLBACK (bookmark_open_cb), toolbar);
- g_signal_connect (action, "open_in_tab",
- G_CALLBACK (bookmark_open_in_tab_cb), toolbar);
+ g_signal_connect_swapped (action, "open-link",
+ G_CALLBACK (ephy_link_open), toolbar);
gtk_action_group_add_action (toolbar->priv->action_group, action);
g_object_unref (action);