diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-12-24 08:21:16 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-12-24 08:21:16 +0800 |
commit | d127ec47856ee69466b909af12e5f1020a12cb15 (patch) | |
tree | e8c6dcbd55f1b143983b73878a9177883ac352e6 /src/bookmarks/ephy-bookmarksbar.c | |
parent | 93079ee8ea5a7a2e89d4842c9c4cad71724a99f4 (diff) | |
download | gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.gz gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.bz2 gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.lz gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.xz gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.zst gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.zip |
A src/ephy-home-action.c: (ephy_home_action_activate),
2004-12-24 Christian Persch <chpe@cvs.gnome.org>
* lib/ephy-marshal.list:
* src/Makefile.am:
* src/bookmarks/ephy-bookmark-action.c:
(ephy_bookmark_action_get_type), (create_tool_item),
(open_in_tab_activate_cb), (open_in_window_activate_cb),
(activate_cb), (connect_proxy), (ephy_bookmark_action_class_init):
* src/bookmarks/ephy-bookmark-action.h:
* src/bookmarks/ephy-bookmarks-menu.c:
(ephy_bookmarks_menu_get_type), (add_action_for_bookmark),
(ephy_bookmarks_menu_class_init):
* src/bookmarks/ephy-bookmarks-menu.h:
* src/bookmarks/ephy-bookmarksbar.c: (ephy_bookmarksbar_get_type),
(ephy_bookmarksbar_action_request):
* src/bookmarks/ephy-favorites-menu.c:
(ephy_favorites_menu_get_type), (ephy_favorites_menu_rebuild):
* src/bookmarks/ephy-favorites-menu.h:
* src/bookmarks/ephy-topic-action.c: (ephy_topic_action_get_type),
(menu_activate_cb), (open_in_tabs_activate_cb),
(ephy_topic_action_class_init):
* src/bookmarks/ephy-topic-action.h:
A src/ephy-home-action.c: (ephy_home_action_activate),
(ephy_home_action_class_init), (ephy_home_action_get_type):
A src/ephy-home-action.h:
A src/ephy-link-action.c: (ephy_link_action_get_type):
A src/ephy-link-action.h:
A src/ephy-link.c: (ephy_link_flags_get_type),
(ephy_link_base_init), (ephy_link_get_type), (ephy_link_open):
A src/ephy-link.h:
* src/ephy-location-action.c: (ephy_location_action_get_type),
(action_activated_cb), (location_url_activate_cb), (connect_proxy),
(disconnect_proxy), (ephy_location_action_class_init):
* src/ephy-location-action.h:
* src/ephy-navigation-action.c: (ephy_navigation_action_get_type),
(activate_back_or_forward_menu_item_cb),
(activate_up_menu_item_cb), (build_back_or_forward_menu),
(build_up_menu):
* src/ephy-navigation-action.h:
* src/ephy-shell.c: (ephy_shell_new_tab):
* src/ephy-window.c: (setup_ui_manager), (open_link_cb),
(ephy_window_init):
* src/toolbar.c: (toolbar_get_type), (toolbar_setup_actions):
* src/window-commands.c:
* src/window-commands.h:
Consolidate link opening in one place by introducing an EphyLink interface
which bookmarks, topics, navigation, location, home, toolbars, bookmarks menu
and favourites menu implement, forwarding the link opening to the window.
Diffstat (limited to 'src/bookmarks/ephy-bookmarksbar.c')
-rw-r--r-- | src/bookmarks/ephy-bookmarksbar.c | 67 |
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); |