diff options
author | Marco Pesenti Gritti <marco@it.gnome.org> | 2003-01-23 21:22:17 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <mpeseng@src.gnome.org> | 2003-01-23 21:22:17 +0800 |
commit | 2db0d1ed3d15012d2d9c80d8d9499160e1f535dc (patch) | |
tree | d2caa10c004ddf0196656611acd4c3b3e0e05c0c /src | |
parent | 7fe73f1990a361a3c794ef5517e2cb4d3188466e (diff) | |
download | gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.gz gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.bz2 gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.lz gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.xz gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.zst gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.zip |
Reimplement encoding menus. Work around eggmenu finalization problems. Fix
2003-01-23 Marco Pesenti Gritti <marco@it.gnome.org>
* TODO:
* data/ui/epiphany-ui.xml.in:
* embed/ephy-embed-utils.c:
(ephy_embed_utils_build_charsets_submenu):
* lib/egg/egg-menu-merge.c: (egg_menu_merge_finalize),
(egg_menu_merge_class_init), (egg_menu_merge_init),
(egg_menu_merge_node_prepend_uierence),
(egg_menu_merge_node_remove_uierence), (start_element_handler),
(cleanup), (remove_ui), (update_node):
* src/Makefile.am:
* src/ephy-encoding-menu.c: (ephy_encoding_menu_class_init),
(ephy_encoding_menu_init), (ephy_encoding_menu_finalize_impl),
(ephy_encoding_menu_set_property),
(ephy_encoding_menu_get_property), (ephy_encoding_menu_new),
(ephy_encoding_menu_verb_cb), (build_group), (build_charset),
(ephy_encoding_menu_rebuild):
* src/ephy-encoding-menu.h:
* src/ephy-favorites-menu.c: (ephy_favorites_menu_finalize_impl),
(ephy_favorites_menu_verb_cb):
* src/ephy-favorites-menu.h:
* src/ephy-window.c: (ephy_window_init), (ephy_window_finalize):
* src/ppview-toolbar.c: (ppview_toolbar_finalize):
Reimplement encoding menus.
Work around eggmenu finalization problems.
Fix ppvtoolbar/favorites menu to correctly
remove action group on finalize.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/ephy-favorites-menu.c | 13 | ||||
-rw-r--r-- | src/ephy-favorites-menu.h | 2 | ||||
-rw-r--r-- | src/ephy-window.c | 18 | ||||
-rwxr-xr-x | src/ppview-toolbar.c | 7 |
5 files changed, 20 insertions, 22 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 875926c3b..bf4fdb8a2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -46,6 +46,8 @@ epiphany_SOURCES = \ appearance-prefs.h \ ephy-automation.c \ ephy-automation.h \ + ephy-encoding-menu.c \ + ephy-encoding-menu.h \ ephy-favicon-action.c \ ephy-favicon-action.h \ ephy-favorites-menu.c \ diff --git a/src/ephy-favorites-menu.c b/src/ephy-favorites-menu.c index 4c13072c8..c8be1e816 100644 --- a/src/ephy-favorites-menu.c +++ b/src/ephy-favorites-menu.c @@ -138,6 +138,14 @@ ephy_favorites_menu_finalize_impl (GObject *o) EphyFavoritesMenu *wrhm = EPHY_FAVORITES_MENU (o); EphyFavoritesMenuPrivate *p = wrhm->priv; + if (p->action_group != NULL) + { + egg_menu_merge_remove_action_group + (EGG_MENU_MERGE (p->window->ui_merge), + p->action_group); + g_object_unref (p->action_group); + } + g_free (p); G_OBJECT_CLASS (g_object_class)->finalize (o); @@ -186,9 +194,8 @@ ephy_favorites_menu_new (EphyWindow *window) } static void -ephy_favorites_menu_verb_cb (BonoboUIComponent *uic, - FavoriteData *data, - const char *cname) +ephy_favorites_menu_verb_cb (EggMenuMerge *merge, + FavoriteData *data) { ephy_window_load_url (data->window, data->url); } diff --git a/src/ephy-favorites-menu.h b/src/ephy-favorites-menu.h index 228cbcef8..78bd74193 100644 --- a/src/ephy-favorites-menu.h +++ b/src/ephy-favorites-menu.h @@ -21,8 +21,6 @@ #include "ephy-window.h" -#include <bonobo/bonobo-ui-component.h> - /* object forward declarations */ typedef struct _EphyFavoritesMenu EphyFavoritesMenu; diff --git a/src/ephy-window.c b/src/ephy-window.c index 1da8cc949..ec023ff83 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -31,13 +31,13 @@ #include "ephy-shell.h" #include "eel-gconf-extensions.h" #include "ephy-prefs.h" -#include "ephy-embed-utils.h" #include "ephy-debug.h" #include "ephy-file-helpers.h" #include "statusbar.h" #include "toolbar.h" #include "popup-commands.h" #include "egg-toggle-action.h" +#include "ephy-encoding-menu.h" #include <string.h> #include <libgnome/gnome-i18n.h> @@ -51,18 +51,6 @@ #include "egg-action-group.h" #include "egg-menu-merge.h" -#define CHARSET_MENU_PATH "/menu/View/EncodingMenuPlaceholder" -#define GO_FAVORITES_PATH "/menu/Go/Favorites" - -#define GO_BACK_ACTION "GoBack" -#define GO_FORWARD_ACTION "GoForward" -#define GO_UP_ACTION "GoUp" -#define EDIT_FIND_NEXT_ACTION "EditFindNext" -#define EDIT_FIND_PREV_ACTION "EditFindPrev" -#define VIEW_STATUSBAR_ACTION "ViewStatusbar" -#define VIEW_TOOLBAR_ACTION "ViewToolbar" -#define VIEW_FULLSCREEN_ACTION "ViewFullscreen" - static EggActionGroupEntry ephy_menu_entries [] = { /* Toplevel */ @@ -159,6 +147,7 @@ static EggActionGroupEntry ephy_menu_entries [] = { { "ViewZoomNormal", N_("_Normal Size"), GTK_STOCK_ZOOM_100, NULL, N_("Show the contents at the normal size"), G_CALLBACK (window_cmd_view_zoom_normal), NULL }, + { "ViewEncoding", N_("_Encoding"), NULL, NULL, NULL, NULL, NULL }, { "ViewPageSource", N_("_Page Source"), NULL, NULL, N_("View the source code of the page"), G_CALLBACK (window_cmd_view_page_source), NULL }, @@ -271,6 +260,7 @@ struct EphyWindowPrivate EggActionGroup *action_group; EggActionGroup *popups_action_group; EphyFavoritesMenu *fav_menu; + EphyEncodingMenu *enc_menu; PPViewToolbar *ppview_toolbar; GtkNotebook *notebook; EphyTab *active_tab; @@ -556,6 +546,7 @@ ephy_window_init (EphyWindow *window) setup_window (window); window->priv->fav_menu = ephy_favorites_menu_new (window); + window->priv->enc_menu = ephy_encoding_menu_new (window); /* Setup window contents */ window->priv->notebook = setup_notebook (window); @@ -639,6 +630,7 @@ ephy_window_finalize (GObject *object) } g_object_unref (window->priv->fav_menu); + g_object_unref (window->priv->enc_menu); if (window->priv->toolbar) { diff --git a/src/ppview-toolbar.c b/src/ppview-toolbar.c index 78b3b33d9..a97765930 100755 --- a/src/ppview-toolbar.c +++ b/src/ppview-toolbar.c @@ -26,10 +26,6 @@ #include <string.h> #include <bonobo/bonobo-i18n.h> -#include <bonobo/bonobo-window.h> -#include <bonobo/bonobo-control.h> -#include <bonobo/bonobo-ui-toolbar-button-item.h> -#include <bonobo/bonobo-property-bag.h> #include <gtk/gtkentry.h> #include <gtk/gtkmenu.h> @@ -275,7 +271,10 @@ ppview_toolbar_finalize (GObject *object) t = PPVIEW_TOOLBAR (object); g_return_if_fail (t->priv != NULL); + egg_menu_merge_remove_ui (t->priv->ui_merge, t->priv->ui_id); + egg_menu_merge_remove_action_group (t->priv->ui_merge, + t->priv->action_group); g_object_unref (t->priv->action_group); g_free (t->priv); |