diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2015-01-23 18:53:36 -0800 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2015-01-23 18:54:03 -0800 |
commit | 2cbb8111fa55e24fe3a81ac49df991ff484b6f56 (patch) | |
tree | 7356ce5c2ee2639730cadd0ffc2933396a765882 | |
parent | ad8f9fd2fa29738e1e18ad7b835629bcef4bdaa9 (diff) | |
download | nautilus-2cbb8111fa55e24fe3a81ac49df991ff484b6f56.tar.gz |
Remove now unused nautilus-window-menus.c file
-rw-r--r-- | src/nautilus-window-menus.c | 726 |
1 files changed, 0 insertions, 726 deletions
diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c deleted file mode 100644 index 999d1630c..000000000 --- a/src/nautilus-window-menus.c +++ /dev/null @@ -1,726 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ - -/* - * Nautilus - * - * Copyright (C) 2000, 2001 Eazel, Inc. - * - * Nautilus is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * Nautilus is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - * - * Author: John Sullivan <sullivan@eazel.com> - */ - -/* nautilus-window-menus.h - implementation of nautilus window menu operations, - * split into separate file just for convenience. - */ -#include <config.h> - -#include <locale.h> - -#include "nautilus-actions.h" -#include "nautilus-application.h" -#include "nautilus-canvas-view.h" -#include "nautilus-connect-server-dialog.h" -#include "nautilus-file-management-properties.h" -#include "nautilus-list-view.h" -#include "nautilus-location-entry.h" -#include "nautilus-notebook.h" -#include "nautilus-window-private.h" -#include "nautilus-desktop-window.h" -#include "nautilus-properties-window.h" - -#include <gtk/gtk.h> -#include <gio/gio.h> -#include <glib/gi18n.h> - -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-stock-dialogs.h> - -#include <libnautilus-extension/nautilus-menu-provider.h> -#include <libnautilus-private/nautilus-file-utilities.h> -#include <libnautilus-private/nautilus-global-preferences.h> -#include <libnautilus-private/nautilus-icon-names.h> -#include <libnautilus-private/nautilus-ui-utilities.h> -#include <libnautilus-private/nautilus-module.h> -#include <libnautilus-private/nautilus-program-choosing.h> -#include <libnautilus-private/nautilus-search-directory.h> -#include <libnautilus-private/nautilus-search-engine.h> -#include <libnautilus-private/nautilus-signaller.h> -#include <libnautilus-private/nautilus-trash-monitor.h> -#include <string.h> - -#define MENU_PATH_EXTENSION_ACTIONS "/ActionMenu/Extension Actions" -#define POPUP_PATH_EXTENSION_ACTIONS "/background/Before Zoom Items/Extension Actions" - -#define NETWORK_URI "network:" - -static void -action_close_window_slot_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window; - NautilusWindowSlot *slot; - - window = NAUTILUS_WINDOW (user_data); - slot = nautilus_window_get_active_slot (window); - - nautilus_window_slot_close (window, slot); -} - -static void -action_bookmarks_callback (GtkAction *action, - gpointer user_data) -{ - g_action_group_activate_action (G_ACTION_GROUP (g_application_get_default ()), - "bookmarks", NULL); -} - -static void -action_stop_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window; - NautilusWindowSlot *slot; - - window = NAUTILUS_WINDOW (user_data); - slot = nautilus_window_get_active_slot (window); - - nautilus_window_slot_stop_loading (slot); -} - -static void -action_home_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window; - NautilusWindowSlot *slot; - - window = NAUTILUS_WINDOW (user_data); - slot = nautilus_window_get_active_slot (window); - - nautilus_window_slot_go_home (slot, - nautilus_event_get_window_open_flags ()); -} - -static void -action_reload_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindowSlot *slot; - - slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (user_data)); - nautilus_window_slot_queue_reload (slot); -} - -static void -action_location_properties_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindowSlot *slot; - GList *files; - NautilusView *view; - NautilusFile *file; - - slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (user_data)); - view = nautilus_window_slot_get_current_view (slot); - file = nautilus_view_get_directory_as_file (view); - - files = g_list_append (NULL, file); - - nautilus_properties_window_present (files, GTK_WIDGET (view), NULL); - - g_list_free (files); -} - -static NautilusView * -get_current_view (NautilusWindow *window) -{ - NautilusWindowSlot *slot; - NautilusView *view; - - slot = nautilus_window_get_active_slot (window); - view = nautilus_window_slot_get_current_view (slot); - - return view; -} - -static void -action_zoom_in_callback (GtkAction *action, - gpointer user_data) -{ - - nautilus_view_bump_zoom_level (get_current_view (user_data), 1); -} - -static void -action_zoom_out_callback (GtkAction *action, - gpointer user_data) -{ - nautilus_view_bump_zoom_level (get_current_view (user_data), -1); -} - -static void -action_zoom_normal_callback (GtkAction *action, - gpointer user_data) -{ - nautilus_view_restore_default_zoom_level (get_current_view (user_data)); -} - -static void -action_up_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - NautilusWindowSlot *slot; - - slot = nautilus_window_get_active_slot (window); - nautilus_window_slot_go_up (slot, nautilus_event_get_window_open_flags ()); -} - -#define MENU_ITEM_MAX_WIDTH_CHARS 32 - -static void -action_back_callback (GtkAction *action, - gpointer user_data) -{ - nautilus_window_back_or_forward (NAUTILUS_WINDOW (user_data), - TRUE, 0, nautilus_event_get_window_open_flags ()); -} - -static void -action_forward_callback (GtkAction *action, - gpointer user_data) -{ - nautilus_window_back_or_forward (NAUTILUS_WINDOW (user_data), - FALSE, 0, nautilus_event_get_window_open_flags ()); -} - -static void -action_show_hide_sidebar_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window; - - window = NAUTILUS_WINDOW (user_data); - - if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) { - nautilus_window_show_sidebar (window); - } else { - nautilus_window_hide_sidebar (window); - } -} - -static void -action_add_bookmark_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - NautilusApplication *app = NAUTILUS_APPLICATION (g_application_get_default ()); - NautilusWindowSlot *slot; - - slot = nautilus_window_get_active_slot (window); - nautilus_bookmark_list_append (nautilus_application_get_bookmarks (app), - nautilus_window_slot_get_bookmark (slot)); -} - -static void -connect_proxy_cb (GtkActionGroup *action_group, - GtkAction *action, - GtkWidget *proxy, - NautilusWindow *window) -{ - GtkLabel *label; - - if (!GTK_IS_MENU_ITEM (proxy)) - return; - - label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (proxy))); - - gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END); - gtk_label_set_max_width_chars (label, MENU_ITEM_MAX_WIDTH_CHARS); -} - -static void -action_new_tab_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window; - - window = NAUTILUS_WINDOW (user_data); - nautilus_window_new_tab (window); -} - -static void -action_enter_location_callback (GtkAction *action, - gpointer user_data) -{ - g_action_group_activate_action (G_ACTION_GROUP (g_application_get_default ()), - "enter-location", NULL); -} - -static void -action_tabs_previous_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - - nautilus_notebook_prev_page (NAUTILUS_NOTEBOOK (window->details->notebook)); -} - -static void -action_tabs_next_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - - nautilus_notebook_next_page (NAUTILUS_NOTEBOOK (window->details->notebook)); -} - -static void -action_tabs_move_left_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - - nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->details->notebook), -1); -} - -static void -action_tabs_move_right_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - - nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->details->notebook), 1); -} - -static void -action_tab_change_action_activate_callback (GtkAction *action, - gpointer user_data) -{ - NautilusWindow *window = user_data; - GtkNotebook *notebook; - int num; - - notebook = GTK_NOTEBOOK (window->details->notebook); - - num = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (action), "num")); - if (num < gtk_notebook_get_n_pages (notebook)) { - gtk_notebook_set_current_page (notebook, num); - } -} - -static void -action_show_hide_search_callback (GtkAction *action, - NautilusWindow *window) -{ - gboolean active; - NautilusWindowSlot *slot; - - active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); - slot = nautilus_window_get_active_slot (window); - nautilus_window_slot_set_search_visible (slot, active); -} - -static void -action_prompt_for_location_slash_callback (GtkAction *action, - NautilusWindow *window) -{ - GFile *location; - - location = g_file_new_for_path ("/"); - nautilus_window_prompt_for_location (window, location); - g_object_unref (location); -} - -static void -action_prompt_for_location_tilde_callback (GtkAction *action, - NautilusWindow *window) -{ - GtkWidget *entry; - - entry = nautilus_window_ensure_location_entry (window); - nautilus_location_entry_set_special_text (NAUTILUS_LOCATION_ENTRY (entry), - "~"); - gtk_editable_set_position (GTK_EDITABLE (entry), -1); -} - -static void -action_view_radio_changed (GtkRadioAction *action, - GtkRadioAction *current, - NautilusWindow *window) -{ - const gchar *name; - NautilusWindowSlot *slot; - - name = gtk_action_get_name (GTK_ACTION (current)); - slot = nautilus_window_get_active_slot (window); - - if (g_strcmp0 (name, NAUTILUS_ACTION_VIEW_LIST) == 0) { - nautilus_window_slot_set_content_view (slot, NAUTILUS_LIST_VIEW_ID); - } else if (g_strcmp0 (name, NAUTILUS_ACTION_VIEW_GRID) == 0) { - nautilus_window_slot_set_content_view (slot, NAUTILUS_CANVAS_VIEW_ID); - } -} - -static const GtkActionEntry main_entries[] = { - /* name, stock id */ { NAUTILUS_ACTION_CLOSE, NULL, - /* label, accelerator */ N_("_Close"), "<control>W", - /* tooltip */ N_("Close this folder"), - G_CALLBACK (action_close_window_slot_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_UP, NULL, - /* label, accelerator */ N_("Open _Parent"), "<alt>Up", - N_("Open the parent folder"), - G_CALLBACK (action_up_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_STOP, NULL, - /* label, accelerator */ N_("_Stop"), NULL, - /* tooltip */ N_("Stop loading the current location"), - G_CALLBACK (action_stop_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_RELOAD, NULL, - /* label, accelerator */ N_("_Reload"), "<control>R", - /* tooltip */ N_("Reload the current location"), - G_CALLBACK (action_reload_callback) }, - /* name, stock id */ { "ReloadAccel", NULL, - /* label, accelerator */ "ReloadAccel", "F5", - /* tooltip */ NULL, - G_CALLBACK (action_reload_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_ZOOM_IN, NULL, - /* label, accelerator */ N_("Zoom _In"), "<control>plus", - /* tooltip */ N_("Increase the view size"), - G_CALLBACK (action_zoom_in_callback) }, - /* name, stock id */ { "ZoomInAccel", NULL, - /* label, accelerator */ "ZoomInAccel", "<control>equal", - /* tooltip */ NULL, - G_CALLBACK (action_zoom_in_callback) }, - /* name, stock id */ { "ZoomInAccel2", NULL, - /* label, accelerator */ "ZoomInAccel2", "<control>KP_Add", - /* tooltip */ NULL, - G_CALLBACK (action_zoom_in_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_ZOOM_OUT, NULL, - /* label, accelerator */ N_("Zoom _Out"), "<control>minus", - /* tooltip */ N_("Decrease the view size"), - G_CALLBACK (action_zoom_out_callback) }, - /* name, stock id */ { "ZoomOutAccel", NULL, - /* label, accelerator */ "ZoomOutAccel", "<control>KP_Subtract", - /* tooltip */ NULL, - G_CALLBACK (action_zoom_out_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_ZOOM_NORMAL, NULL, - /* label, accelerator */ N_("Normal Si_ze"), "<control>0", - /* tooltip */ N_("Use the normal view size"), - G_CALLBACK (action_zoom_normal_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_GO_HOME, NAUTILUS_ICON_HOME, - /* label, accelerator */ N_("_Home"), "<alt>Home", - /* tooltip */ N_("Open your personal folder"), - G_CALLBACK (action_home_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_NEW_TAB, "tab-new", - N_("New _Tab"), "<control>T", - N_("Open another tab for the displayed location"), - G_CALLBACK (action_new_tab_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_BACK, "go-previous-symbolic", - N_("_Back"), "<alt>Left", - N_("Go to the previous visited location"), - G_CALLBACK (action_back_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_FORWARD, "go-next-symbolic", - N_("_Forward"), "<alt>Right", - N_("Go to the next visited location"), - G_CALLBACK (action_forward_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_ENTER_LOCATION, NULL, - N_("Enter _Location…"), "<control>L", - N_("Specify a location to open"), - G_CALLBACK (action_enter_location_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_ADD_BOOKMARK, NULL, - N_("Bookmark this Location"), "<control>d", - N_("Add a bookmark for the current location"), - G_CALLBACK (action_add_bookmark_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_EDIT_BOOKMARKS, NULL, - N_("_Bookmarks…"), "<control>b", - N_("Display and edit bookmarks"), - G_CALLBACK (action_bookmarks_callback) }, - { "TabsPrevious", NULL, N_("_Previous Tab"), "<control>Page_Up", - N_("Activate previous tab"), - G_CALLBACK (action_tabs_previous_callback) }, - { "TabsNext", NULL, N_("_Next Tab"), "<control>Page_Down", - N_("Activate next tab"), - G_CALLBACK (action_tabs_next_callback) }, - { "TabsMoveLeft", NULL, N_("Move Tab _Left"), "<shift><control>Page_Up", - N_("Move current tab to left"), - G_CALLBACK (action_tabs_move_left_callback) }, - { "TabsMoveRight", NULL, N_("Move Tab _Right"), "<shift><control>Page_Down", - N_("Move current tab to right"), - G_CALLBACK (action_tabs_move_right_callback) }, - /* name, stock id */ { NAUTILUS_ACTION_LOCATION_PROPERTIES, NULL, - /* label, accelerator */ N_("P_roperties"), NULL, - /* tooltip */ N_("View or modify the properties of this folder"), - G_CALLBACK (action_location_properties_callback) }, - /* name, stock id */ { "PromptLocationSlashAccel", NULL, - /* label, accelerator */ "PromptLocationSlashAccel", "slash", - /* tooltip */ NULL, - G_CALLBACK (action_prompt_for_location_slash_callback) }, - /* name, stock id */ { "PromptLocationTildeAccel", NULL, - /* label, accelerator */ "PromptLocationTildeAccel", "asciitilde", - /* tooltip */ NULL, - G_CALLBACK (action_prompt_for_location_tilde_callback) }, -}; - -static const GtkToggleActionEntry main_toggle_entries[] = { - /* name, stock id */ { NAUTILUS_ACTION_SHOW_HIDE_SIDEBAR, NULL, - /* label, accelerator */ N_("_Show Sidebar"), "F9", - /* tooltip */ N_("Change the visibility of this window's side pane"), - G_CALLBACK (action_show_hide_sidebar_callback), - /* is_active */ TRUE }, - /* name, stock id */ { NAUTILUS_ACTION_SEARCH, "edit-find-symbolic", - /* label, accelerator */ N_("_Search for Files…"), "<control>f", - /* tooltip */ N_("Search documents and folders by name"), - G_CALLBACK (action_show_hide_search_callback), - /* is_active */ FALSE }, -}; - -static const GtkRadioActionEntry view_radio_entries[] = { - { NAUTILUS_ACTION_VIEW_LIST, "view-list-symbolic", N_("List"), - "<control>1", N_("View items as a list"), 0 }, - { NAUTILUS_ACTION_VIEW_GRID, "view-grid-symbolic", N_("List"), - "<control>2", N_("View items as a grid of icons"), 1 } -}; - -static void -action_toggle_state (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - GVariant *state; - - state = g_action_get_state (G_ACTION (action)); - g_action_change_state (G_ACTION (action), - g_variant_new_boolean (!g_variant_get_boolean (state))); - g_variant_unref (state); -} - -const GActionEntry win_entries[] = { - { "gear-menu", action_toggle_state, NULL, "false", NULL }, -}; - -void -nautilus_window_initialize_actions (NautilusWindow *window) -{ - g_action_map_add_action_entries (G_ACTION_MAP (window), - win_entries, G_N_ELEMENTS (win_entries), - window); -} - -/** - * nautilus_window_initialize_menus - * - * Create and install the set of menus for this window. - * @window: A recently-created NautilusWindow. - */ -void -nautilus_window_initialize_menus (NautilusWindow *window) -{ - GtkActionGroup *action_group; - GtkUIManager *ui_manager; - GtkAction *action; - gint i; - - window->details->ui_manager = gtk_ui_manager_new (); - ui_manager = window->details->ui_manager; - - /* shell actions */ - action_group = gtk_action_group_new ("ShellActions"); - gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); - window->details->main_action_group = action_group; - gtk_action_group_add_actions (action_group, - main_entries, G_N_ELEMENTS (main_entries), - window); - gtk_action_group_add_toggle_actions (action_group, - main_toggle_entries, G_N_ELEMENTS (main_toggle_entries), - window); - gtk_action_group_add_radio_actions (action_group, - view_radio_entries, G_N_ELEMENTS (view_radio_entries), - -1, G_CALLBACK (action_view_radio_changed), - window); - - action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_UP); - g_object_set (action, "short_label", _("_Up"), NULL); - - action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_HOME); - g_object_set (action, "short_label", _("_Home"), NULL); - - /* Alt+N for the first 10 tabs */ - for (i = 0; i < 10; ++i) { - gchar action_name[80]; - gchar accelerator[80]; - - snprintf(action_name, sizeof (action_name), "Tab%d", i); - action = gtk_action_new (action_name, NULL, NULL, NULL); - g_object_set_data (G_OBJECT (action), "num", GINT_TO_POINTER (i)); - g_signal_connect (action, "activate", - G_CALLBACK (action_tab_change_action_activate_callback), window); - snprintf(accelerator, sizeof (accelerator), "<alt>%d", (i+1)%10); - gtk_action_group_add_action_with_accel (action_group, action, accelerator); - g_object_unref (action); - gtk_ui_manager_add_ui (ui_manager, - gtk_ui_manager_new_merge_id (ui_manager), - "/", - action_name, - action_name, - GTK_UI_MANAGER_ACCELERATOR, - FALSE); - - } - - gtk_ui_manager_insert_action_group (ui_manager, action_group, 0); - g_object_unref (action_group); /* owned by ui_manager */ - - gtk_window_add_accel_group (GTK_WINDOW (window), - gtk_ui_manager_get_accel_group (ui_manager)); - - g_signal_connect (ui_manager, "connect-proxy", - G_CALLBACK (connect_proxy_cb), window); - - /* add the UI */ - gtk_ui_manager_add_ui_from_resource (ui_manager, "/org/gnome/nautilus/nautilus-shell-ui.xml", NULL); -} - -static GList * -get_extension_menus (NautilusWindow *window) -{ - NautilusFile *file; - NautilusWindowSlot *slot; - GList *providers; - GList *items; - GList *l; - - providers = nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_MENU_PROVIDER); - items = NULL; - - slot = nautilus_window_get_active_slot (window); - file = nautilus_window_slot_get_file (slot); - - for (l = providers; l != NULL; l = l->next) { - NautilusMenuProvider *provider; - GList *file_items; - - provider = NAUTILUS_MENU_PROVIDER (l->data); - file_items = nautilus_menu_provider_get_background_items (provider, - GTK_WIDGET (window), - file); - items = g_list_concat (items, file_items); - } - - nautilus_module_extension_list_free (providers); - - return items; -} - -static void -add_extension_menu_items (NautilusWindow *window, - guint merge_id, - GtkActionGroup *action_group, - GList *menu_items, - const char *subdirectory) -{ - GtkUIManager *ui_manager; - GList *l; - - ui_manager = window->details->ui_manager; - - for (l = menu_items; l; l = l->next) { - NautilusMenuItem *item; - NautilusMenu *menu; - GtkAction *action; - char *path; - - item = NAUTILUS_MENU_ITEM (l->data); - - g_object_get (item, "menu", &menu, NULL); - - action = nautilus_action_from_menu_item (item, GTK_WIDGET (window)); - gtk_action_group_add_action_with_accel (action_group, action, NULL); - - path = g_build_path ("/", POPUP_PATH_EXTENSION_ACTIONS, subdirectory, NULL); - gtk_ui_manager_add_ui (ui_manager, - merge_id, - path, - gtk_action_get_name (action), - gtk_action_get_name (action), - (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM, - FALSE); - g_free (path); - - path = g_build_path ("/", MENU_PATH_EXTENSION_ACTIONS, subdirectory, NULL); - gtk_ui_manager_add_ui (ui_manager, - merge_id, - path, - gtk_action_get_name (action), - gtk_action_get_name (action), - (menu != NULL) ? GTK_UI_MANAGER_MENU : GTK_UI_MANAGER_MENUITEM, - FALSE); - g_free (path); - - /* recursively fill the menu */ - if (menu != NULL) { - char *subdir; - GList *children; - - children = nautilus_menu_get_items (menu); - - subdir = g_build_path ("/", subdirectory, "/", gtk_action_get_name (action), NULL); - add_extension_menu_items (window, - merge_id, - action_group, - children, - subdir); - - nautilus_menu_item_list_free (children); - g_free (subdir); - } - } -} - -void -nautilus_window_load_extension_menus (NautilusWindow *window) -{ - GtkActionGroup *action_group; - GList *items; - guint merge_id; - - if (window->details->extensions_menu_merge_id != 0) { - gtk_ui_manager_remove_ui (window->details->ui_manager, - window->details->extensions_menu_merge_id); - window->details->extensions_menu_merge_id = 0; - } - - if (window->details->extensions_menu_action_group != NULL) { - gtk_ui_manager_remove_action_group (window->details->ui_manager, - window->details->extensions_menu_action_group); - window->details->extensions_menu_action_group = NULL; - } - - merge_id = gtk_ui_manager_new_merge_id (window->details->ui_manager); - window->details->extensions_menu_merge_id = merge_id; - action_group = gtk_action_group_new ("ExtensionsMenuGroup"); - window->details->extensions_menu_action_group = action_group; - gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); - gtk_ui_manager_insert_action_group (window->details->ui_manager, action_group, 0); - g_object_unref (action_group); /* owned by ui manager */ - - items = get_extension_menus (window); - - if (items != NULL) { - add_extension_menu_items (window, merge_id, action_group, items, ""); - - g_list_foreach (items, (GFunc) g_object_unref, NULL); - g_list_free (items); - } -} |