[nautilus] search-engine-simple: respect recursive setting for non local children
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] search-engine-simple: respect recursive setting for non local children
- Date: Thu, 26 Jul 2018 05:48:50 +0000 (UTC)
commit 3a277a7baf531c3ceff43dc8d6868b1602e12879
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Wed Jun 6 15:24:15 2018 +0200
search-engine-simple: respect recursive setting for non local children
src/nautilus-search-engine-simple.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/src/nautilus-search-engine-simple.c b/src/nautilus-search-engine-simple.c
index 12fafb46e..d7ff3aac5 100644
--- a/src/nautilus-search-engine-simple.c
+++ b/src/nautilus-search-engine-simple.c
@@ -52,7 +52,6 @@ typedef struct
GHashTable *visited;
- gboolean recursive;
gint n_processed_files;
GList *hits;
@@ -66,8 +65,6 @@ struct _NautilusSearchEngineSimple
NautilusQuery *query;
SearchThreadData *active_search;
-
- gboolean recursive;
};
static void nautilus_search_provider_init (NautilusSearchProviderInterface *iface);
@@ -210,6 +207,7 @@ visit_directory (GFile *dir,
{
g_autoptr (GPtrArray) date_range = NULL;
NautilusQuerySearchType type;
+ NautilusQueryRecursive recursive_flag;
GFileEnumerator *enumerator;
GFileInfo *info;
GFile *child;
@@ -241,10 +239,12 @@ visit_directory (GFile *dir,
}
type = nautilus_query_get_search_type (data->query);
+ recursive_flag = nautilus_query_get_recursive (data->query);
date_range = nautilus_query_get_date_range (data->query);
while ((info = g_file_enumerator_next_file (enumerator, data->cancellable, NULL)) != NULL)
{
+ gboolean recursive = FALSE;
display_name = g_file_info_get_display_name (info);
if (display_name == NULL)
{
@@ -321,7 +321,15 @@ visit_directory (GFile *dir,
send_batch (data);
}
- if (data->engine->recursive && g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
+ if (recursive_flag != NAUTILUS_QUERY_RECURSIVE_NEVER &&
+ g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
+ {
+ recursive = recursive_flag == NAUTILUS_QUERY_RECURSIVE_ALWAYS ||
+ (recursive_flag == NAUTILUS_QUERY_RECURSIVE_LOCAL_ONLY &&
+ g_file_is_native (child));
+ }
+
+ if (recursive)
{
id = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_ID_FILE);
visited = FALSE;
@@ -440,7 +448,6 @@ nautilus_search_engine_simple_set_query (NautilusSearchProvider *provider,
g_clear_object (&simple->query);
simple->query = g_object_ref (query);
- simple->recursive = nautilus_query_get_recursive (query) == NAUTILUS_QUERY_RECURSIVE_ALWAYS;
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]