[nautilus] Move sync_search_widgets from window to pane



commit 3a9fae22b64e4c4c3fa66520314285b4a8b836bb
Author: Alexander Larsson <alexl redhat com>
Date:   Wed Dec 16 15:11:35 2009 +0100

    Move sync_search_widgets from window to pane
    
    Since the search widgets are per pane we need only update them
    for the pane, never for all the window.

 src/nautilus-navigation-window-pane.c |   31 +++++++++++++++++++++
 src/nautilus-navigation-window.c      |   47 ---------------------------------
 src/nautilus-navigation-window.h      |    1 -
 src/nautilus-window-manage-views.c    |    2 +-
 src/nautilus-window-pane.c            |    9 ++++++
 src/nautilus-window-pane.h            |    2 +
 src/nautilus-window-slot.c            |    2 +-
 src/nautilus-window.c                 |    9 ------
 src/nautilus-window.h                 |    2 -
 9 files changed, 44 insertions(+), 61 deletions(-)
---
diff --git a/src/nautilus-navigation-window-pane.c b/src/nautilus-navigation-window-pane.c
index 93551a8..75b1cf7 100644
--- a/src/nautilus-navigation-window-pane.c
+++ b/src/nautilus-navigation-window-pane.c
@@ -810,11 +810,42 @@ nautilus_navigation_window_pane_show (NautilusWindowPane *pane)
 	gtk_widget_show (npane->widget);
 }
 
+/* either called due to slot change, or due to location change in the current slot. */
+static void
+real_sync_search_widgets (NautilusWindowPane *window_pane)
+{
+	NautilusWindowSlot *slot;
+	NautilusDirectory *directory;
+	NautilusSearchDirectory *search_directory;
+	NautilusNavigationWindowPane *pane;
+
+	pane = NAUTILUS_NAVIGATION_WINDOW_PANE (window_pane);
+	slot = window_pane->active_slot;
+	search_directory = NULL;
+
+	directory = nautilus_directory_get (slot->location);
+	if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
+		search_directory = NAUTILUS_SEARCH_DIRECTORY (directory);
+	}
+
+	if (search_directory != NULL &&
+	    !nautilus_search_directory_is_saved_search (search_directory)) {
+		nautilus_navigation_window_pane_show_location_bar_temporarily (pane);
+		nautilus_navigation_window_pane_set_bar_mode (pane, NAUTILUS_BAR_SEARCH);
+		pane->temporary_search_bar = FALSE;
+	} else {
+		pane->temporary_search_bar = TRUE;
+		nautilus_navigation_window_pane_hide_temporary_bars (pane);
+	}
+	nautilus_directory_unref (directory);
+}
+
 static void
 nautilus_navigation_window_pane_class_init (NautilusNavigationWindowPaneClass *class)
 {
 	G_OBJECT_CLASS (class)->dispose = nautilus_navigation_window_pane_dispose;
 	NAUTILUS_WINDOW_PANE_CLASS (class)->show = nautilus_navigation_window_pane_show;
+	NAUTILUS_WINDOW_PANE_CLASS (class)->sync_search_widgets = real_sync_search_widgets;
 }
 
 static void
diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c
index 479ca8d..cf25fdb 100644
--- a/src/nautilus-navigation-window.c
+++ b/src/nautilus-navigation-window.c
@@ -121,19 +121,6 @@ static const struct {
 #endif
 };
 
-gboolean
-nautilus_navigation_window_hide_temporary_bars (NautilusNavigationWindow *window)
-{
-	gboolean any = TRUE;
-	GList *walk;
-	for (walk = NAUTILUS_WINDOW(window)->details->panes; walk; walk = walk->next) {
-		if(!nautilus_navigation_window_pane_hide_temporary_bars (walk->data)) {
-			any = FALSE;
-		}
-	}
-	return any;
-}
-
 static void
 nautilus_navigation_window_init (NautilusNavigationWindow *window)
 {
@@ -846,39 +833,6 @@ nautilus_navigation_window_set_search_button (NautilusNavigationWindow *window,
 	gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), state);
 }
 
-/* either called due to slot change, or due to location change in the current slot. */
-static void
-real_sync_search_widgets (NautilusWindow *window)
-{
-	NautilusNavigationWindow *navigation_window;
-	NautilusNavigationWindowPane *pane;
-	NautilusWindowSlot *slot;
-	NautilusDirectory *directory;
-	NautilusSearchDirectory *search_directory;
-
-	navigation_window = NAUTILUS_NAVIGATION_WINDOW (window);
-	pane = NAUTILUS_NAVIGATION_WINDOW_PANE (window->details->active_pane);
-	slot = window->details->active_pane->active_slot;
-
-	search_directory = NULL;
-
-	directory = nautilus_directory_get (slot->location);
-	if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
-		search_directory = NAUTILUS_SEARCH_DIRECTORY (directory);
-	}
-
-	if (search_directory != NULL &&
-	    !nautilus_search_directory_is_saved_search (search_directory)) {
-		nautilus_navigation_window_pane_show_location_bar_temporarily (pane);
-		nautilus_navigation_window_pane_set_bar_mode (pane, NAUTILUS_BAR_SEARCH);
-		pane->temporary_search_bar = FALSE;
-	} else {
-		pane->temporary_search_bar = TRUE;
-		nautilus_navigation_window_hide_temporary_bars (navigation_window);
-	}
-	nautilus_directory_unref (directory);
-}
-
 static void
 side_panel_image_changed_callback (NautilusSidebar *side_panel,
                                    gpointer callback_data)
@@ -1238,7 +1192,6 @@ nautilus_navigation_window_class_init (NautilusNavigationWindowClass *class)
 	GTK_WIDGET_CLASS (class)->button_press_event = nautilus_navigation_window_button_press_event;
 	NAUTILUS_WINDOW_CLASS (class)->sync_allow_stop = real_sync_allow_stop;
 	NAUTILUS_WINDOW_CLASS (class)->prompt_for_location = real_prompt_for_location;
-	NAUTILUS_WINDOW_CLASS (class)->sync_search_widgets = real_sync_search_widgets;
 	NAUTILUS_WINDOW_CLASS (class)->sync_title = real_sync_title;
 	NAUTILUS_WINDOW_CLASS (class)->get_icon = real_get_icon;
 	NAUTILUS_WINDOW_CLASS (class)->get_default_size = real_get_default_size;
diff --git a/src/nautilus-navigation-window.h b/src/nautilus-navigation-window.h
index 863e91d..84f3fac 100644
--- a/src/nautilus-navigation-window.h
+++ b/src/nautilus-navigation-window.h
@@ -101,7 +101,6 @@ void     nautilus_navigation_window_back_or_forward      (NautilusNavigationWind
 							  gboolean                  new_tab);
 void     nautilus_navigation_window_show_search          (NautilusNavigationWindow *window);
 void     nautilus_navigation_window_unset_focus_widget   (NautilusNavigationWindow *window);
-gboolean nautilus_navigation_window_hide_temporary_bars  (NautilusNavigationWindow *window);
 void     nautilus_navigation_window_hide_search          (NautilusNavigationWindow *window);
 void     nautilus_navigation_window_set_search_button	 (NautilusNavigationWindow *window,
                                                           gboolean		    state);
diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c
index 0a3dd23..520683a 100644
--- a/src/nautilus-window-manage-views.c
+++ b/src/nautilus-window-manage-views.c
@@ -1653,7 +1653,7 @@ update_for_new_location (NautilusWindowSlot *slot)
 		nautilus_window_pane_sync_location_widgets (slot->pane);
 
 		if (location_really_changed) {
-			nautilus_window_sync_search_widgets (window);
+			nautilus_window_pane_sync_search_widgets (slot->pane);
 		}
 
 		if (NAUTILUS_IS_NAVIGATION_WINDOW (window)) {
diff --git a/src/nautilus-window-pane.c b/src/nautilus-window-pane.c
index 4b910b3..a38d2cf 100644
--- a/src/nautilus-window-pane.c
+++ b/src/nautilus-window-pane.c
@@ -181,6 +181,15 @@ nautilus_window_pane_sync_location_widgets (NautilusWindowPane *pane)
 }
 
 void
+nautilus_window_pane_sync_search_widgets (NautilusWindowPane *pane)
+{
+	g_assert (NAUTILUS_IS_WINDOW_PANE (pane));
+
+	EEL_CALL_METHOD (NAUTILUS_WINDOW_PANE_CLASS, pane,
+			 sync_search_widgets, (pane));
+}
+
+void
 nautilus_window_pane_switch_to (NautilusWindowPane *pane)
 {
 	if (NAUTILUS_IS_WINDOW_PANE (pane)) {
diff --git a/src/nautilus-window-pane.h b/src/nautilus-window-pane.h
index 77895b5..64f4fbc 100644
--- a/src/nautilus-window-pane.h
+++ b/src/nautilus-window-pane.h
@@ -40,6 +40,7 @@ struct _NautilusWindowPaneClass {
 	GObjectClass parent_class;
 
 	void (*show) (NautilusWindowPane *pane);
+	void (*sync_search_widgets) (NautilusWindowPane *pane);
 };
 
 /* A NautilusWindowPane is a layer between a slot and a window.
@@ -79,6 +80,7 @@ void nautilus_window_pane_zoom_to_level (NautilusWindowPane *pane, NautilusZoomL
 void nautilus_window_pane_zoom_out (NautilusWindowPane *pane);
 void nautilus_window_pane_zoom_to_default (NautilusWindowPane *pane);
 void nautilus_window_pane_sync_location_widgets (NautilusWindowPane *pane);
+void nautilus_window_pane_sync_search_widgets  (NautilusWindowPane *pane);
 void nautilus_window_pane_set_active (NautilusWindowPane *pane, gboolean is_active);
 void nautilus_window_pane_slot_close (NautilusWindowPane *pane, NautilusWindowSlot *slot);
 
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index eb8d9b0..bbadb72 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -119,7 +119,7 @@ real_active (NautilusWindowSlot *slot)
 	nautilus_window_sync_title (window, slot);
 	nautilus_window_sync_zoom_widgets (window);
 	nautilus_window_pane_sync_location_widgets (slot->pane);
-	nautilus_window_sync_search_widgets (window);
+	nautilus_window_pane_sync_search_widgets (slot->pane);
 
 	if (slot->viewed_file != NULL) {
 		nautilus_window_load_view_as_menus (window);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 977af26..283ff6c 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -414,15 +414,6 @@ nautilus_window_get_location_uri (NautilusWindow *window)
 }
 
 void
-nautilus_window_sync_search_widgets (NautilusWindow *window)
-{
-	g_assert (NAUTILUS_IS_WINDOW (window));
-
-	EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window,
-			 sync_search_widgets, (window));
-}
-
-void
 nautilus_window_zoom_in (NautilusWindow *window)
 {
 	g_assert (window != NULL);
diff --git a/src/nautilus-window.h b/src/nautilus-window.h
index ada3560..2c9e3c1 100644
--- a/src/nautilus-window.h
+++ b/src/nautilus-window.h
@@ -99,7 +99,6 @@ typedef struct {
 	void   (* set_allow_up) (NautilusWindow *window, gboolean allow);
 	void   (* reload)              (NautilusWindow *window);
         void   (* prompt_for_location) (NautilusWindow *window, const char *initial);
-        void   (* sync_search_widgets) (NautilusWindow *window);
         void   (* get_default_size) (NautilusWindow *window, guint *default_width, guint *default_height);
         void   (* close) (NautilusWindow *window);
 
@@ -143,7 +142,6 @@ void             nautilus_window_go_up                (NautilusWindow    *window
 						       gboolean           new_tab);
 void             nautilus_window_prompt_for_location  (NautilusWindow    *window,
                                                        const char        *initial);
-void		 nautilus_window_sync_search_widgets  (NautilusWindow    *window);
 void             nautilus_window_launch_cd_burner     (NautilusWindow    *window);
 void             nautilus_window_display_error        (NautilusWindow    *window,
                                                        const char        *error_msg);



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