[nautilus/gnome-3-6] shell-provider: make the shell search provider follow show-hidden
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/gnome-3-6] shell-provider: make the shell search provider follow show-hidden
- Date: Mon, 15 Oct 2012 13:44:16 +0000 (UTC)
commit eba3de180882a70794e11d5957f4bcec56cf4977
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Thu Oct 11 21:25:08 2012 -0400
shell-provider: make the shell search provider follow show-hidden
Add a query property we can set to false from the shell provider, and
use it in the simple search engine to exclude hidden files. Note that by
default the query sets it to TRUE, so the behavior in Nautilus is
unchanged.
libnautilus-private/nautilus-query.c | 14 ++++++++++++++
libnautilus-private/nautilus-query.h | 3 +++
.../nautilus-search-engine-simple.c | 7 ++++++-
src/nautilus-shell-search-provider.c | 1 +
4 files changed, 24 insertions(+), 1 deletions(-)
---
diff --git a/libnautilus-private/nautilus-query.c b/libnautilus-private/nautilus-query.c
index 59d94f4..6f457d8 100644
--- a/libnautilus-private/nautilus-query.c
+++ b/libnautilus-private/nautilus-query.c
@@ -33,6 +33,7 @@ struct NautilusQueryDetails {
char *text;
char *location_uri;
GList *mime_types;
+ gboolean show_hidden;
};
static void nautilus_query_class_init (NautilusQueryClass *class);
@@ -68,6 +69,7 @@ nautilus_query_init (NautilusQuery *query)
{
query->details = G_TYPE_INSTANCE_GET_PRIVATE (query, NAUTILUS_TYPE_QUERY,
NautilusQueryDetails);
+ query->details->show_hidden = TRUE;
}
NautilusQuery *
@@ -123,6 +125,18 @@ nautilus_query_add_mime_type (NautilusQuery *query, const char *mime_type)
g_strdup (mime_type));
}
+gboolean
+nautilus_query_get_show_hidden_files (NautilusQuery *query)
+{
+ return query->details->show_hidden;
+}
+
+void
+nautilus_query_set_show_hidden_files (NautilusQuery *query, gboolean show_hidden)
+{
+ query->details->show_hidden = show_hidden;
+}
+
char *
nautilus_query_to_readable_string (NautilusQuery *query)
{
diff --git a/libnautilus-private/nautilus-query.h b/libnautilus-private/nautilus-query.h
index 9507cdb..4c2e52b 100644
--- a/libnautilus-private/nautilus-query.h
+++ b/libnautilus-private/nautilus-query.h
@@ -51,6 +51,9 @@ NautilusQuery* nautilus_query_new (void);
char * nautilus_query_get_text (NautilusQuery *query);
void nautilus_query_set_text (NautilusQuery *query, const char *text);
+gboolean nautilus_query_get_show_hidden_files (NautilusQuery *query);
+void nautilus_query_set_show_hidden_files (NautilusQuery *query, gboolean show_hidden);
+
char * nautilus_query_get_location (NautilusQuery *query);
void nautilus_query_set_location (NautilusQuery *query, const char *uri);
diff --git a/libnautilus-private/nautilus-search-engine-simple.c b/libnautilus-private/nautilus-search-engine-simple.c
index 7ee4917..0a52dac 100644
--- a/libnautilus-private/nautilus-search-engine-simple.c
+++ b/libnautilus-private/nautilus-search-engine-simple.c
@@ -210,7 +210,7 @@ visit_directory (GFile *dir, SearchThreadData *data)
GFile *child;
const char *mime_type, *display_name;
char *prepared;
- gboolean found;
+ gboolean found, is_hidden;
int i;
GList *l;
const char *id;
@@ -235,6 +235,11 @@ visit_directory (GFile *dir, SearchThreadData *data)
goto next;
}
+ is_hidden = g_file_info_get_is_hidden (info) || g_file_info_get_is_backup (info);
+ if (is_hidden && !nautilus_query_get_show_hidden_files (data->engine->details->query)) {
+ goto next;
+ }
+
prepared = nautilus_search_prepare_string_for_compare (display_name);
found = TRUE;
diff --git a/src/nautilus-shell-search-provider.c b/src/nautilus-shell-search-provider.c
index cf1cced..649ea15 100644
--- a/src/nautilus-shell-search-provider.c
+++ b/src/nautilus-shell-search-provider.c
@@ -474,6 +474,7 @@ execute_search (NautilusShellSearchProviderApp *self,
home_uri = nautilus_get_home_directory_uri ();
query = nautilus_query_new ();
+ nautilus_query_set_show_hidden_files (query, FALSE);
nautilus_query_set_text (query, terms_joined);
nautilus_query_set_location (query, home_uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]