[nautilus] Move sync_search_widgets from window to pane
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus] Move sync_search_widgets from window to pane
- Date: Wed, 16 Dec 2009 14:43:20 +0000 (UTC)
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]