mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-05 23:40:01 +00:00
files-view: Remove "search from history" complexity
Now that we never "go back" to a search directory, the added complexity to accomodate for that can be reverted. This effectively reverts logic introduced by the following commits: *63d0425a9b
*f24fd6934d
This commit is contained in:
parent
d06b4d6a81
commit
570e5c59c3
|
@ -340,10 +340,6 @@ static gboolean nautilus_files_view_is_searching (NautilusView *view);
|
|||
|
||||
static void nautilus_files_view_iface_init (NautilusViewInterface *view);
|
||||
|
||||
static void set_search_query_internal (NautilusFilesView *files_view,
|
||||
NautilusQuery *query,
|
||||
NautilusDirectory *base_model);
|
||||
|
||||
static gboolean nautilus_files_view_is_read_only (NautilusFilesView *view);
|
||||
static void nautilus_files_view_set_selection (NautilusView *nautilus_files_view,
|
||||
GList *selection);
|
||||
|
@ -3695,32 +3691,11 @@ nautilus_files_view_set_location (NautilusView *view,
|
|||
GFile *location)
|
||||
{
|
||||
NautilusDirectory *directory;
|
||||
NautilusFilesView *files_view;
|
||||
|
||||
nautilus_profile_start (NULL);
|
||||
files_view = NAUTILUS_FILES_VIEW (view);
|
||||
directory = nautilus_directory_get (location);
|
||||
|
||||
nautilus_files_view_stop_loading (files_view);
|
||||
/* In case we want to load a previous search we need to extract the real
|
||||
* location and the search location, and load the directory when everything
|
||||
* is ready. That's why we cannot use the nautilus_view_set_query, because
|
||||
* to set a query we need a previous location loaded, but to load a search
|
||||
* location we need to know the real location behind it. */
|
||||
if (NAUTILUS_IS_SEARCH_DIRECTORY (directory))
|
||||
{
|
||||
NautilusQuery *previous_query;
|
||||
NautilusDirectory *base_model;
|
||||
|
||||
base_model = nautilus_search_directory_get_base_model (NAUTILUS_SEARCH_DIRECTORY (directory));
|
||||
previous_query = nautilus_search_directory_get_query (NAUTILUS_SEARCH_DIRECTORY (directory));
|
||||
set_search_query_internal (files_view, previous_query, base_model);
|
||||
g_object_unref (previous_query);
|
||||
}
|
||||
else
|
||||
{
|
||||
load_directory (NAUTILUS_FILES_VIEW (view), directory);
|
||||
}
|
||||
load_directory (NAUTILUS_FILES_VIEW (view), directory);
|
||||
nautilus_directory_unref (directory);
|
||||
nautilus_profile_end (NULL);
|
||||
}
|
||||
|
@ -9393,10 +9368,10 @@ nautilus_files_view_get_search_query (NautilusView *view)
|
|||
}
|
||||
|
||||
static void
|
||||
set_search_query_internal (NautilusFilesView *files_view,
|
||||
NautilusQuery *query,
|
||||
NautilusDirectory *base_model)
|
||||
nautilus_files_view_set_search_query (NautilusView *view,
|
||||
NautilusQuery *query)
|
||||
{
|
||||
NautilusFilesView *files_view = NAUTILUS_FILES_VIEW (view);
|
||||
GFile *location;
|
||||
NautilusFilesViewPrivate *priv;
|
||||
|
||||
|
@ -9404,23 +9379,16 @@ set_search_query_internal (NautilusFilesView *files_view,
|
|||
priv = nautilus_files_view_get_instance_private (files_view);
|
||||
|
||||
g_set_object (&priv->search_query, query);
|
||||
g_object_notify (G_OBJECT (files_view), "search-query");
|
||||
g_object_notify (G_OBJECT (view), "search-query");
|
||||
|
||||
if (!nautilus_query_is_empty (query))
|
||||
{
|
||||
if (nautilus_view_is_searching (NAUTILUS_VIEW (files_view)))
|
||||
if (nautilus_view_is_searching (view))
|
||||
{
|
||||
/*
|
||||
* Reuse the search directory and reload it.
|
||||
*/
|
||||
nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (priv->model), query);
|
||||
/* It's important to use load_directory instead of set_location,
|
||||
* since the location is already correct, however we need
|
||||
* to reload the directory with the new query set. But
|
||||
* set_location has a check for wheter the location is a
|
||||
* search directory, so setting the location to a search
|
||||
* directory when is already serching will enter a loop.
|
||||
*/
|
||||
load_directory (files_view, priv->model);
|
||||
}
|
||||
else
|
||||
|
@ -9433,12 +9401,12 @@ set_search_query_internal (NautilusFilesView *files_view,
|
|||
|
||||
directory = nautilus_directory_get (location);
|
||||
g_assert (NAUTILUS_IS_SEARCH_DIRECTORY (directory));
|
||||
nautilus_search_directory_set_base_model (NAUTILUS_SEARCH_DIRECTORY (directory), base_model);
|
||||
nautilus_search_directory_set_base_model (NAUTILUS_SEARCH_DIRECTORY (directory), priv->model);
|
||||
nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), query);
|
||||
|
||||
load_directory (files_view, directory);
|
||||
|
||||
g_object_notify (G_OBJECT (files_view), "searching");
|
||||
g_object_notify (G_OBJECT (view), "searching");
|
||||
|
||||
nautilus_directory_unref (directory);
|
||||
g_free (uri);
|
||||
|
@ -9446,39 +9414,19 @@ set_search_query_internal (NautilusFilesView *files_view,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (nautilus_view_is_searching (NAUTILUS_VIEW (files_view)))
|
||||
if (nautilus_view_is_searching (view))
|
||||
{
|
||||
NautilusDirectory *base_model;
|
||||
|
||||
base_model = nautilus_search_directory_get_base_model (NAUTILUS_SEARCH_DIRECTORY (priv->model));
|
||||
location = nautilus_directory_get_location (base_model);
|
||||
|
||||
nautilus_view_set_location (NAUTILUS_VIEW (files_view), location);
|
||||
nautilus_view_set_location (view, location);
|
||||
}
|
||||
}
|
||||
g_clear_object (&location);
|
||||
}
|
||||
|
||||
static void
|
||||
nautilus_files_view_set_search_query (NautilusView *view,
|
||||
NautilusQuery *query)
|
||||
{
|
||||
NautilusDirectory *base_model;
|
||||
NautilusFilesView *files_view;
|
||||
NautilusFilesViewPrivate *priv;
|
||||
|
||||
files_view = NAUTILUS_FILES_VIEW (view);
|
||||
priv = nautilus_files_view_get_instance_private (files_view);
|
||||
|
||||
if (nautilus_view_is_searching (view))
|
||||
{
|
||||
base_model = nautilus_search_directory_get_base_model (NAUTILUS_SEARCH_DIRECTORY (priv->model));
|
||||
}
|
||||
else
|
||||
{
|
||||
base_model = priv->model;
|
||||
}
|
||||
|
||||
set_search_query_internal (NAUTILUS_FILES_VIEW (view), query, base_model);
|
||||
}
|
||||
|
||||
static GFile *
|
||||
nautilus_files_view_get_location (NautilusView *view)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue