summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Neumair <cneumair@gnome.org>2008-06-28 18:37:27 +0000
committerChristian Neumair <cneumair@src.gnome.org>2008-06-28 18:37:27 +0000
commitc523561a894491f6eaaa07af7543b4c50eeea7a3 (patch)
tree32512eee5818caa11bdd1c2eebe71a466b3342f0
parentab1dfe8ea085ecab7251084cd9e1087b2c7c4304 (diff)
downloadnautilus-c523561a894491f6eaaa07af7543b4c50eeea7a3.tar.gz
Rename nautilus_window_set_search_mode() to
2008-06-28 Christian Neumair <cneumair@gnome.org> * 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
-rw-r--r--ChangeLog17
-rw-r--r--src/nautilus-navigation-window-menus.c17
-rw-r--r--src/nautilus-navigation-window.c84
-rw-r--r--src/nautilus-spatial-window.c74
-rw-r--r--src/nautilus-window-manage-views.c30
-rw-r--r--src/nautilus-window-slot.c3
-rw-r--r--src/nautilus-window-slot.h1
-rw-r--r--src/nautilus-window.c12
-rw-r--r--src/nautilus-window.h6
9 files changed, 71 insertions, 173 deletions
diff --git a/ChangeLog b/ChangeLog
index 6eab4b489..dc4f71aeb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
2008-06-28 Christian Neumair <cneumair@gnome.org>
+ * 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 <cneumair@gnome.org>
+
* src/nautilus-query-editor.c (nautilus_query_editor_clear_query),
(nautilus_query_editor_new), (detach_from_external_entry),
(attach_to_external_entry), (nautilus_query_editor_new_with_bar),
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 <eel/eel-gdk-extensions.h>
#include <eel/eel-glib-extensions.h>
#include <eel/eel-gtk-extensions.h>
+#include <eel/eel-gtk-macros.h>
#include <eel/eel-stock-dialogs.h>
#include <eel/eel-string.h>
#include <eel/eel-mount-operation.h>
@@ -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);