summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-12-16 15:11:35 +0100
committerAlexander Larsson <alexl@redhat.com>2009-12-16 15:11:35 +0100
commit3a9fae22b64e4c4c3fa66520314285b4a8b836bb (patch)
treeafbf15470bcbd6a3ba9355a6f547a94a5971e011
parenta6b53ce4d5b811c854ef8987d1bf6af7ab355b68 (diff)
downloadnautilus-3a9fae22b64e4c4c3fa66520314285b4a8b836bb.tar.gz
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.
-rw-r--r--src/nautilus-navigation-window-pane.c31
-rw-r--r--src/nautilus-navigation-window.c47
-rw-r--r--src/nautilus-navigation-window.h1
-rw-r--r--src/nautilus-window-manage-views.c2
-rw-r--r--src/nautilus-window-pane.c9
-rw-r--r--src/nautilus-window-pane.h2
-rw-r--r--src/nautilus-window-slot.c2
-rw-r--r--src/nautilus-window.c9
-rw-r--r--src/nautilus-window.h2
9 files changed, 44 insertions, 61 deletions
diff --git a/src/nautilus-navigation-window-pane.c b/src/nautilus-navigation-window-pane.c
index 93551a816..75b1cf70b 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 479ca8d0a..cf25fdbec 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 863e91dba..84f3fac22 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 0a3dd236c..520683a37 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 4b910b352..a38d2cfb6 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 77895b557..64f4fbc4b 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 eb8d9b0eb..bbadb7241 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 977af26de..283ff6cb7 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 ada356021..2c9e3c1b1 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);