[nautilus] window: add nautilus_window_get_main_action_group()



commit f876211d2e318580d1f28c57e7f0182f7c5bfb3a
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Fri Jan 6 12:53:04 2012 +0100

    window: add nautilus_window_get_main_action_group()

 src/nautilus-desktop-window.c |   12 ++++++++----
 src/nautilus-window-menus.c   |   30 +++++++++++++++---------------
 src/nautilus-window.c         |   33 ++++++++++++++++++++++-----------
 src/nautilus-window.h         |    2 +-
 4 files changed, 46 insertions(+), 31 deletions(-)
---
diff --git a/src/nautilus-desktop-window.c b/src/nautilus-desktop-window.c
index 616b2f7..b9b42f0 100644
--- a/src/nautilus-desktop-window.c
+++ b/src/nautilus-desktop-window.c
@@ -62,22 +62,26 @@ nautilus_desktop_window_dispose (GObject *obj)
 static void
 nautilus_desktop_window_constructed (GObject *obj)
 {
+	GtkActionGroup *action_group;
 	GtkAction *action;
 	AtkObject *accessible;
 	NautilusDesktopWindow *window = NAUTILUS_DESKTOP_WINDOW (obj);
+	NautilusWindow *nwindow = NAUTILUS_WINDOW (obj);
 
 	G_OBJECT_CLASS (nautilus_desktop_window_parent_class)->constructed (obj);
 	
-	gtk_widget_hide (NAUTILUS_WINDOW (window)->details->statusbar);
-	gtk_widget_hide (NAUTILUS_WINDOW (window)->details->menubar);
+	gtk_widget_hide (nwindow->details->statusbar);
+	gtk_widget_hide (nwindow->details->menubar);
+
+	action_group = nautilus_window_get_main_action_group (nwindow);
 
 	/* Don't allow close action on desktop */
-	action = gtk_action_group_get_action (NAUTILUS_WINDOW (window)->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_CLOSE);
 	gtk_action_set_sensitive (action, FALSE);
 
 	/* Don't allow new tab on desktop */
-	action = gtk_action_group_get_action (NAUTILUS_WINDOW (window)->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_NEW_TAB);
 	gtk_action_set_sensitive (action, FALSE);
 
diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c
index 1b74a6f..8e8b001 100644
--- a/src/nautilus-window-menus.c
+++ b/src/nautilus-window-menus.c
@@ -276,8 +276,8 @@ show_hidden_files_preference_callback (gpointer callback_data)
 	window = NAUTILUS_WINDOW (callback_data);
 
 	if (window->details->show_hidden_files_mode == NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
-		action = gtk_action_group_get_action (window->details->main_action_group, NAUTILUS_ACTION_SHOW_HIDDEN_FILES);
-		g_assert (GTK_IS_ACTION (action));
+		action = gtk_action_group_get_action (nautilus_window_get_main_action_group (window),
+						      NAUTILUS_ACTION_SHOW_HIDDEN_FILES);
 
 		/* update button */
 		g_signal_handlers_block_by_func (action, action_show_hidden_files_callback, window);
@@ -514,7 +514,7 @@ trash_state_changed_cb (NautilusTrashMonitor *monitor,
 	GtkAction *action;
 	GIcon *gicon;
 
-	action_group = window->details->main_action_group;
+	action_group = nautilus_window_get_main_action_group (window);
 	action = gtk_action_group_get_action (action_group, "Go to Trash");
 
 	gicon = nautilus_trash_monitor_get_icon ();
@@ -653,17 +653,18 @@ sidebar_id_to_value (const gchar *sidebar_id)
 void
 nautilus_window_update_show_hide_menu_items (NautilusWindow *window) 
 {
+	GtkActionGroup *action_group;
 	GtkAction *action;
 	guint current_value;
 
-	g_assert (NAUTILUS_IS_WINDOW (window));
+	action_group = nautilus_window_get_main_action_group (window);
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_SHOW_HIDE_EXTRA_PANE);
 	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
 				      nautilus_window_split_view_showing (window));
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      "Sidebar Places");
 	current_value = sidebar_id_to_value (window->details->sidebar_id);
 	gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action), current_value);
@@ -727,8 +728,6 @@ nautilus_window_initialize_go_menu (NautilusWindow *window)
 	GtkWidget *menuitem;
 	int i;
 
-	g_assert (NAUTILUS_IS_WINDOW (window));
-
 	ui_manager = nautilus_window_get_ui_manager (NAUTILUS_WINDOW (window));
 
 	for (i = 0; i < G_N_ELEMENTS (icon_entries); i++) {
@@ -753,10 +752,8 @@ nautilus_window_update_split_view_actions_sensitivity (NautilusWindow *window)
 	NautilusWindowPane *next_pane;
 	NautilusWindowSlot *active_slot;
 
-	g_assert (NAUTILUS_IS_WINDOW (window));
-
-	action_group = window->details->main_action_group;
 	active_slot = nautilus_window_get_active_slot (window);
+	action_group = nautilus_window_get_main_action_group (window);
 
 	/* collect information */
 	have_multiple_panes = (window->details->panes && window->details->panes->next);
@@ -1163,9 +1160,12 @@ nautilus_window_create_toolbar_action_group (NautilusWindow *window)
 static void
 window_menus_set_bindings (NautilusWindow *window)
 {
+	GtkActionGroup *action_group;
 	GtkAction *action;
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action_group = nautilus_window_get_main_action_group (window);
+
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_SHOW_HIDE_TOOLBAR);
 
 	g_settings_bind (nautilus_window_state,
@@ -1174,7 +1174,7 @@ window_menus_set_bindings (NautilusWindow *window)
 			 "active",
 			 G_SETTINGS_BIND_DEFAULT);
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_SHOW_HIDE_STATUSBAR);
 
 	g_settings_bind (nautilus_window_state,
@@ -1183,7 +1183,7 @@ window_menus_set_bindings (NautilusWindow *window)
 			 "active",
 			 G_SETTINGS_BIND_DEFAULT);
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_SHOW_HIDE_SIDEBAR);	
 
 	g_settings_bind (nautilus_window_state,
@@ -1202,7 +1202,7 @@ nautilus_window_initialize_actions (NautilusWindow *window)
 		NAUTILUS_ACTION_SEARCH, NULL
 	};
 
-	action_group = window->details->main_action_group;
+	action_group = nautilus_window_get_main_action_group (window);
 	window->details->nav_state = nautilus_navigation_state_new (action_group,
 								    nav_state_actions);
 
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 5c9418d..a9a6437 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -240,16 +240,18 @@ nautilus_window_new_tab (NautilusWindow *window)
 }
 
 void
-nautilus_window_allow_up (NautilusWindow *window, gboolean allow)
+nautilus_window_allow_up (NautilusWindow *window, 
+			  gboolean allow)
 {
 	GtkAction *action;
-	
-        g_assert (NAUTILUS_IS_WINDOW (window));
+	GtkActionGroup *action_group;
+
+	action_group = nautilus_window_get_main_action_group (window);
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_UP);
 	gtk_action_set_sensitive (action, allow);
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_UP_ACCEL);
 	gtk_action_set_sensitive (action, allow);
 }
@@ -279,9 +281,7 @@ nautilus_window_sync_allow_stop (NautilusWindow *window,
 	gboolean allow_stop, slot_is_active;
 	NautilusNotebook *notebook;
 
-	g_assert (NAUTILUS_IS_WINDOW (window));
-
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (nautilus_window_get_main_action_group (window),
 					      NAUTILUS_ACTION_STOP);
 	allow_stop = gtk_action_get_sensitive (action);
 
@@ -1443,6 +1443,7 @@ nautilus_window_sync_zoom_widgets (NautilusWindow *window)
 {
 	NautilusWindowSlot *slot;
 	NautilusView *view;
+	GtkActionGroup *action_group;
 	GtkAction *action;
 	gboolean supports_zooming;
 	gboolean can_zoom, can_zoom_in, can_zoom_out;
@@ -1467,17 +1468,19 @@ nautilus_window_sync_zoom_widgets (NautilusWindow *window)
 		can_zoom_out = FALSE;
 	}
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action_group = nautilus_window_get_main_action_group (window);
+
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_ZOOM_IN);
 	gtk_action_set_visible (action, supports_zooming);
 	gtk_action_set_sensitive (action, can_zoom_in);
 	
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_ZOOM_OUT);
 	gtk_action_set_visible (action, supports_zooming);
 	gtk_action_set_sensitive (action, can_zoom_out);
 
-	action = gtk_action_group_get_action (window->details->main_action_group,
+	action = gtk_action_group_get_action (action_group,
 					      NAUTILUS_ACTION_ZOOM_NORMAL);
 	gtk_action_set_visible (action, supports_zooming);
 	gtk_action_set_sensitive (action, can_zoom);
@@ -1588,6 +1591,14 @@ nautilus_window_get_ui_manager (NautilusWindow *window)
 	return window->details->ui_manager;
 }
 
+GtkActionGroup *
+nautilus_window_get_main_action_group (NautilusWindow *window)
+{
+	g_return_val_if_fail (NAUTILUS_IS_WINDOW (window), NULL);
+
+	return window->details->main_action_group;
+}
+
 NautilusWindowPane *
 nautilus_window_get_next_pane (NautilusWindow *window)
 {
diff --git a/src/nautilus-window.h b/src/nautilus-window.h
index 3471b61..860303d 100644
--- a/src/nautilus-window.h
+++ b/src/nautilus-window.h
@@ -119,7 +119,7 @@ void             nautilus_window_prompt_for_location  (NautilusWindow    *window
 void             nautilus_window_allow_up             (NautilusWindow    *window, 
                                                        gboolean           allow);
 GtkUIManager *   nautilus_window_get_ui_manager       (NautilusWindow    *window);
-
+GtkActionGroup * nautilus_window_get_main_action_group (NautilusWindow   *window);
 
 void                 nautilus_window_report_load_complete     (NautilusWindow *window,
                                                                NautilusView *view);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]