From c523561a894491f6eaaa07af7543b4c50eeea7a3 Mon Sep 17 00:00:00 2001 From: Christian Neumair Date: Sat, 28 Jun 2008 18:37:27 +0000 Subject: Rename nautilus_window_set_search_mode() to 2008-06-28 Christian Neumair * src/nautilus-navigation-window-menus.c (action_new_tab_callback): * src/nautilus-navigation-window.c (hide_temporary_bars), (real_sync_search_widgets), (nautilus_navigation_window_class_init): * src/nautilus-spatial-window.c (nautilus_spatial_window_show), (nautilus_spatial_window_class_init): * src/nautilus-window-manage-views.c (found_mount_cb), (update_for_new_location): * src/nautilus-window-slot.h: * src/nautilus-window.c (nautilus_window_sync_search_widgets): * src/nautilus-window.h: Rename nautilus_window_set_search_mode() to nautilus_window_sync_search_widgets(), which just updates the widgets from the slot state. Minor code refactorizations. svn path=/branches/multiview/; revision=14294 --- ChangeLog | 17 +++++++ src/nautilus-navigation-window-menus.c | 17 +++++-- src/nautilus-navigation-window.c | 84 ++++++++++------------------------ src/nautilus-spatial-window.c | 74 ++---------------------------- src/nautilus-window-manage-views.c | 30 +++--------- src/nautilus-window-slot.c | 3 +- src/nautilus-window-slot.h | 1 - src/nautilus-window.c | 12 +---- src/nautilus-window.h | 6 +-- 9 files changed, 71 insertions(+), 173 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6eab4b489..dc4f71aeb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2008-06-28 Christian Neumair + + * src/nautilus-navigation-window-menus.c (action_new_tab_callback): + * src/nautilus-navigation-window.c (hide_temporary_bars), + (real_sync_search_widgets), + (nautilus_navigation_window_class_init): + * src/nautilus-spatial-window.c (nautilus_spatial_window_show), + (nautilus_spatial_window_class_init): + * src/nautilus-window-manage-views.c (found_mount_cb), + (update_for_new_location): + * src/nautilus-window-slot.h: + * src/nautilus-window.c (nautilus_window_sync_search_widgets): + * src/nautilus-window.h: + Rename nautilus_window_set_search_mode() to + nautilus_window_sync_search_widgets(), which just updates the widgets + from the slot state. Minor code refactorizations. + 2008-06-28 Christian Neumair * src/nautilus-query-editor.c (nautilus_query_editor_clear_query), diff --git a/src/nautilus-navigation-window-menus.c b/src/nautilus-navigation-window-menus.c index 177c25fd1..e130b1c0b 100644 --- a/src/nautilus-navigation-window-menus.c +++ b/src/nautilus-navigation-window-menus.c @@ -666,8 +666,9 @@ action_new_tab_callback (GtkAction *action, NautilusWindowSlot *current_slot; NautilusWindowSlot *new_slot; NautilusWindowOpenFlags flags; - GFile *current_location; + GFile *location; int new_slot_position; + char *scheme; if (!eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) { return; @@ -675,11 +676,11 @@ action_new_tab_callback (GtkAction *action, window = NAUTILUS_WINDOW (user_data); current_slot = window->details->active_slot; - current_location = nautilus_window_slot_get_location (current_slot); + location = nautilus_window_slot_get_location (current_slot); window = NAUTILUS_WINDOW (current_slot->window); - if (current_location != NULL) { + if (location != NULL) { flags = 0; new_slot_position = eel_preferences_get_enum (NAUTILUS_PREFERENCES_NEW_TAB_POSITION); @@ -687,11 +688,17 @@ action_new_tab_callback (GtkAction *action, flags = NAUTILUS_WINDOW_OPEN_SLOT_APPEND; } + scheme = g_file_get_uri_scheme (location); + if (!strcmp (scheme, "x-nautilus-search")) { + g_object_unref (location); + location = g_file_new_for_path (g_get_home_dir ()); + } + g_free (scheme); new_slot = nautilus_window_open_slot (window, flags); nautilus_window_set_active_slot (window, new_slot); - nautilus_window_slot_go_to (new_slot, current_location, FALSE); - g_object_unref (current_location); + nautilus_window_slot_go_to (new_slot, location, FALSE); + g_object_unref (location); } } diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index b5bfbec60..6809986c0 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -606,6 +606,7 @@ static void hide_temporary_bars (NautilusNavigationWindow *window) { NautilusWindowSlot *slot; + NautilusDirectory *directory; g_assert (NAUTILUS_IS_NAVIGATION_WINDOW (window)); @@ -618,7 +619,9 @@ hide_temporary_bars (NautilusNavigationWindow *window) window->details->temporary_location_bar = FALSE; } if (window->details->temporary_navigation_bar) { - if (slot->search_mode) { + directory = nautilus_directory_get (slot->location); + + if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) { nautilus_navigation_window_set_bar_mode (window, NAUTILUS_BAR_SEARCH); } else { if (!eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY)) { @@ -626,6 +629,8 @@ hide_temporary_bars (NautilusNavigationWindow *window) } } window->details->temporary_navigation_bar = FALSE; + + nautilus_directory_unref (directory); } if (window->details->temporary_search_bar) { if (!eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY)) { @@ -1314,75 +1319,36 @@ nautilus_navigation_window_show_search (NautilusNavigationWindow *window) nautilus_search_bar_grab_focus (NAUTILUS_SEARCH_BAR (window->search_bar)); } +/* either called due to slot change, or due to location change in the current slot. */ static void -query_editor_changed_callback (NautilusSearchBar *bar, - NautilusQuery *query, - gboolean reload, - NautilusWindowSlot *slot) -{ - NautilusDirectory *directory; - - g_assert (NAUTILUS_IS_FILE (slot->viewed_file)); - - directory = nautilus_directory_get_for_file (slot->viewed_file); - g_assert (NAUTILUS_IS_SEARCH_DIRECTORY (directory)); - - nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), - query); - if (reload) { - nautilus_window_slot_reload (slot); - } - - nautilus_directory_unref (directory); -} - -static void -real_set_search_mode (NautilusWindow *window, gboolean search_mode, - NautilusSearchDirectory *search_directory) +real_sync_search_widgets (NautilusWindow *window) { + NautilusNavigationWindow *navigation_window; NautilusWindowSlot *slot; - NautilusNavigationWindow *nav_window; - GtkWidget *query_editor; - NautilusQuery *query; + NautilusDirectory *directory; + NautilusSearchDirectory *search_directory; - nav_window = NAUTILUS_NAVIGATION_WINDOW (window); + navigation_window = NAUTILUS_NAVIGATION_WINDOW (window); slot = window->details->active_slot; - if (!search_mode) { - nav_window->details->temporary_search_bar = TRUE; - hide_temporary_bars (nav_window); - return; + search_directory = NULL; + + directory = nautilus_directory_get (slot->location); + if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) { + search_directory = NAUTILUS_SEARCH_DIRECTORY (directory); } - if (nautilus_search_directory_is_saved_search (search_directory)) { - query_editor = nautilus_query_editor_new (TRUE, - nautilus_search_directory_is_indexed (search_directory)); + if (search_directory != NULL && + !nautilus_search_directory_is_saved_search (search_directory)) { + nautilus_navigation_window_show_location_bar_temporarily (navigation_window); + nautilus_navigation_window_set_bar_mode (navigation_window, NAUTILUS_BAR_SEARCH); + navigation_window->details->temporary_search_bar = FALSE; } else { - nautilus_navigation_window_show_location_bar_temporarily (nav_window); - nautilus_navigation_window_set_bar_mode (nav_window, NAUTILUS_BAR_SEARCH); - nav_window->details->temporary_search_bar = FALSE; - - query_editor = nautilus_query_editor_new_with_bar (FALSE, - nautilus_search_directory_is_indexed (search_directory), - NAUTILUS_SEARCH_BAR (nav_window->search_bar)); + navigation_window->details->temporary_search_bar = TRUE; + hide_temporary_bars (navigation_window); } - g_signal_connect_object (query_editor, "changed", - G_CALLBACK (query_editor_changed_callback), slot, 0); - - query = nautilus_search_directory_get_query (search_directory); - if (query != NULL) { - nautilus_query_editor_set_query (NAUTILUS_QUERY_EDITOR (query_editor), - query); - g_object_unref (query); - }else { - nautilus_query_editor_set_default_query (NAUTILUS_QUERY_EDITOR (query_editor)); - } - - nautilus_window_slot_add_extra_location_widget (slot, query_editor); - gtk_widget_show (query_editor); - nautilus_query_editor_grab_focus (NAUTILUS_QUERY_EDITOR (query_editor)); } static void @@ -1844,7 +1810,7 @@ nautilus_navigation_window_class_init (NautilusNavigationWindowClass *class) NAUTILUS_WINDOW_CLASS (class)->disconnect_content_view = real_disconnect_content_view; 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)->set_search_mode = real_set_search_mode; + 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-spatial-window.c b/src/nautilus-spatial-window.c index 1f7f371c1..1c3e3bbfd 100644 --- a/src/nautilus-spatial-window.c +++ b/src/nautilus-spatial-window.c @@ -88,8 +88,6 @@ struct _NautilusSpatialWindowDetails { GtkWidget *location_button; GtkWidget *location_label; GtkWidget *location_icon; - - GtkWidget *query_editor; }; static const GtkTargetEntry location_button_drag_types[] = { @@ -328,15 +326,15 @@ nautilus_spatial_window_save_show_hidden_files_mode (NautilusSpatialWindow *wind static void nautilus_spatial_window_show (GtkWidget *widget) { - NautilusSpatialWindow *window; + NautilusWindow *window; - window = NAUTILUS_SPATIAL_WINDOW (widget); + window = NAUTILUS_WINDOW (widget); GTK_WIDGET_CLASS (nautilus_spatial_window_parent_class)->show (widget); - if (NAUTILUS_WINDOW (window)->details->active_slot->search_mode && - window->details->query_editor != NULL) { - nautilus_query_editor_grab_focus (NAUTILUS_QUERY_EDITOR (window->details->query_editor)); + if (window->details->active_slot != NULL && + window->details->active_slot->query_editor != NULL) { + nautilus_query_editor_grab_focus (NAUTILUS_QUERY_EDITOR (window->details->active_slot->query_editor)); } } @@ -369,66 +367,6 @@ real_prompt_for_location (NautilusWindow *window, gtk_widget_show (dialog); } -static void -query_editor_changed_callback (NautilusSearchBar *bar, - NautilusQuery *query, - gboolean reload, - NautilusWindow *window) -{ - NautilusDirectory *directory; - NautilusWindowSlot *slot; - - slot = window->details->active_slot; - - directory = nautilus_directory_get_for_file (slot->viewed_file); - g_assert (NAUTILUS_IS_SEARCH_DIRECTORY (directory)); - - nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), - query); - if (reload) { - nautilus_window_reload (window); - } - - nautilus_directory_unref (directory); -} - -static void -real_set_search_mode (NautilusWindow *window, gboolean search_mode, - NautilusSearchDirectory *search_directory) -{ - NautilusWindowSlot *slot; - NautilusSpatialWindow *spatial_window; - GtkWidget *query_editor; - NautilusQuery *query; - - spatial_window = NAUTILUS_SPATIAL_WINDOW (window); - - spatial_window->details->query_editor = NULL; - - slot = window->details->active_slot; - - if (search_mode) { - query_editor = nautilus_query_editor_new (nautilus_search_directory_is_saved_search (search_directory), - nautilus_search_directory_is_indexed (search_directory)); - spatial_window->details->query_editor = query_editor; - - nautilus_window_slot_add_extra_location_widget (slot, query_editor); - gtk_widget_show (query_editor); - nautilus_query_editor_grab_focus (NAUTILUS_QUERY_EDITOR (query_editor)); - g_signal_connect_object (query_editor, "changed", - G_CALLBACK (query_editor_changed_callback), window, 0); - - query = nautilus_search_directory_get_query (search_directory); - if (query != NULL) { - nautilus_query_editor_set_query (NAUTILUS_QUERY_EDITOR (query_editor), - query); - g_object_unref (query); - } else { - nautilus_query_editor_set_default_query (NAUTILUS_QUERY_EDITOR (query_editor)); - } - } -} - static NautilusIconInfo * real_get_icon (NautilusWindow *window, NautilusWindowSlot *slot) @@ -1086,8 +1024,6 @@ nautilus_spatial_window_class_init (NautilusSpatialWindowClass *class) NAUTILUS_WINDOW_CLASS (class)->prompt_for_location = real_prompt_for_location; - NAUTILUS_WINDOW_CLASS (class)->set_search_mode = - real_set_search_mode; NAUTILUS_WINDOW_CLASS (class)->get_icon = real_get_icon; NAUTILUS_WINDOW_CLASS (class)->sync_title = diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c index c04caed69..3d0d936c9 100644 --- a/src/nautilus-window-manage-views.c +++ b/src/nautilus-window-manage-views.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -1510,7 +1511,6 @@ found_mount_cb (GObject *source_object, { FindMountData *data = user_data; GMount *mount; - NautilusWindow *window; NautilusWindowSlot *slot; if (g_cancellable_is_cancelled (data->cancellable)) { @@ -1518,7 +1518,6 @@ found_mount_cb (GObject *source_object, } slot = data->slot; - window = slot->window; mount = g_file_find_enclosing_mount_finish (G_FILE (source_object), res, @@ -1579,23 +1578,6 @@ nautilus_window_sync_location_widgets (NautilusWindow *window) } } -static void -nautilus_window_sync_search_mode (NautilusWindow *window) -{ - NautilusWindowSlot *slot; - NautilusDirectory *directory; - - slot = window->details->active_slot; - - directory = nautilus_directory_get (slot->location); - if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) { - nautilus_window_set_search_mode (window, TRUE, NAUTILUS_SEARCH_DIRECTORY (directory)); - } else { - nautilus_window_set_search_mode (window, FALSE, NULL); - } - nautilus_directory_unref (directory); -} - /* Handle the changes for the NautilusWindow itself. */ static void update_for_new_location (NautilusWindowSlot *slot) @@ -1661,10 +1643,7 @@ update_for_new_location (NautilusWindowSlot *slot) directory = nautilus_directory_get (slot->location); - slot->search_mode = NAUTILUS_IS_SEARCH_DIRECTORY (directory); - if (slot == window->details->active_slot) { - nautilus_window_sync_search_mode (window); - } + nautilus_window_slot_update_query_editor (slot); if (nautilus_directory_is_in_trash (directory)) { nautilus_window_slot_show_trash_bar (slot); @@ -1695,6 +1674,11 @@ update_for_new_location (NautilusWindowSlot *slot) if (slot == window->details->active_slot) { nautilus_window_sync_location_widgets (window); + + if (location_really_changed) { + nautilus_window_sync_search_widgets (window); + } + if (NAUTILUS_IS_NAVIGATION_WINDOW (window)) { nautilus_navigation_window_load_extension_toolbar_items (NAUTILUS_NAVIGATION_WINDOW (window)); } diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c index 81aa66507..47824c82a 100644 --- a/src/nautilus-window-slot.c +++ b/src/nautilus-window-slot.c @@ -115,6 +115,7 @@ real_active (NautilusWindowSlot *slot) nautilus_window_sync_allow_stop (window, slot); nautilus_window_sync_title (window, slot); nautilus_window_sync_location_widgets (window); + nautilus_window_sync_search_widgets (window); if (slot->viewed_file != NULL) { nautilus_window_load_view_as_menus (window); @@ -144,8 +145,6 @@ real_inactive (NautilusWindowSlot *slot) window = NAUTILUS_WINDOW (slot->window); g_assert (slot == window->details->active_slot); - - /* multiview-TODO write back locaton widget state */ } static void diff --git a/src/nautilus-window-slot.h b/src/nautilus-window-slot.h index 0d74f5352..9c551e645 100644 --- a/src/nautilus-window-slot.h +++ b/src/nautilus-window-slot.h @@ -92,7 +92,6 @@ struct NautilusWindowSlot { gboolean allow_stop; - gboolean search_mode; NautilusQueryEditor *query_editor; /* New location. */ diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 64246d612..1f0031942 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -449,22 +449,14 @@ nautilus_window_get_location_uri (NautilusWindow *window) } void -nautilus_window_set_search_mode (NautilusWindow *window, - gboolean search_mode, - NautilusSearchDirectory *search_directory) +nautilus_window_sync_search_widgets (NautilusWindow *window) { - NautilusWindowSlot *slot; - g_assert (NAUTILUS_IS_WINDOW (window)); - slot = window->details->active_slot; - slot->search_mode = search_mode; - EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window, - set_search_mode, (window, search_mode, search_directory)); + sync_search_widgets, (window)); } - void nautilus_window_zoom_in (NautilusWindow *window) { diff --git a/src/nautilus-window.h b/src/nautilus-window.h index cedb7d830..8490f9682 100644 --- a/src/nautilus-window.h +++ b/src/nautilus-window.h @@ -91,7 +91,7 @@ typedef struct { void (* set_allow_up) (NautilusWindow *window, gboolean allow); void (* reload) (NautilusWindow *window); void (* prompt_for_location) (NautilusWindow *window, const char *initial); - void (* set_search_mode) (NautilusWindow *window, gboolean search_enabled, NautilusSearchDirectory *search_directory); + void (* sync_search_widgets) (NautilusWindow *window); void (* get_default_size) (NautilusWindow *window, guint *default_width, guint *default_height); void (* show_window) (NautilusWindow *window); void (* close) (NautilusWindow *window); @@ -149,9 +149,7 @@ void nautilus_window_go_up (NautilusWindow *window gboolean new_tab); void nautilus_window_prompt_for_location (NautilusWindow *window, const char *initial); -void nautilus_window_set_search_mode (NautilusWindow *window, - gboolean search_mode, - NautilusSearchDirectory *search_directory); +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); -- cgit v1.2.1