diff options
author | Alexander Larsson <alexl@redhat.com> | 2009-12-16 15:11:35 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-12-16 15:11:35 +0100 |
commit | 3a9fae22b64e4c4c3fa66520314285b4a8b836bb (patch) | |
tree | afbf15470bcbd6a3ba9355a6f547a94a5971e011 | |
parent | a6b53ce4d5b811c854ef8987d1bf6af7ab355b68 (diff) | |
download | nautilus-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.c | 31 | ||||
-rw-r--r-- | src/nautilus-navigation-window.c | 47 | ||||
-rw-r--r-- | src/nautilus-navigation-window.h | 1 | ||||
-rw-r--r-- | src/nautilus-window-manage-views.c | 2 | ||||
-rw-r--r-- | src/nautilus-window-pane.c | 9 | ||||
-rw-r--r-- | src/nautilus-window-pane.h | 2 | ||||
-rw-r--r-- | src/nautilus-window-slot.c | 2 | ||||
-rw-r--r-- | src/nautilus-window.c | 9 | ||||
-rw-r--r-- | 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 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); |