[nautilus/947-impossible-to-star-files-in-subfolders: 37/38] tracker-utilities: Acknowledge non-recursive indexing



commit 8e14ad6f233c5535acb3c51ccf74dacafb1e9e25
Author: António Fernandes <antoniof gnome org>
Date:   Tue Apr 9 20:19:03 2019 +0100

    tracker-utilities: Acknowledge non-recursive indexing
    
    We are looking at "index-recursive-directories" alone for knowing
    which directories are indexed by tracker.
    
    But there is also a "index-single-directories" key, which by default
    includes the user's home directory.
    
    So, read and interpret this key accordingly.

 src/nautilus-tracker-utilities.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/src/nautilus-tracker-utilities.c b/src/nautilus-tracker-utilities.c
index cd6fcfce8..cc76631fb 100644
--- a/src/nautilus-tracker-utilities.c
+++ b/src/nautilus-tracker-utilities.c
@@ -22,6 +22,7 @@
 #include "nautilus-global-preferences.h"
 
 #define TRACKER_KEY_RECURSIVE_DIRECTORIES "index-recursive-directories"
+#define TRACKER_KEY_SINGLE_DIRECTORIES "index-single-directories"
 
 static const gchar *
 path_from_tracker_dir (const gchar *value)
@@ -73,7 +74,7 @@ path_from_tracker_dir (const gchar *value)
 }
 
 static GList *
-get_tracker_locations (void)
+get_tracker_locations (const gchar *key)
 {
     g_auto (GStrv) locations = NULL;
     GList *list = NULL;
@@ -81,7 +82,7 @@ get_tracker_locations (void)
     GFile *location;
     const gchar *path;
 
-    locations = g_settings_get_strv (tracker_preferences, TRACKER_KEY_RECURSIVE_DIRECTORIES);
+    locations = g_settings_get_strv (tracker_preferences, key);
 
     for (idx = 0; locations[idx] != NULL; idx++)
     {
@@ -96,11 +97,12 @@ get_tracker_locations (void)
 gboolean
 nautilus_tracker_directory_is_tracked (GFile *directory)
 {
-    g_autolist (GFile) locations = NULL;
+    g_autolist (GFile) recursive_locations = NULL;
+    g_autolist (GFile) single_locations = NULL;
     GList *l;
 
-    locations = get_tracker_locations ();
-    for (l = locations; l != NULL; l = l->next)
+    recursive_locations = get_tracker_locations (TRACKER_KEY_RECURSIVE_DIRECTORIES);
+    for (l = recursive_locations; l != NULL; l = l->next)
     {
         if (g_file_equal (directory, G_FILE (l->data)) ||
             g_file_has_prefix (directory, G_FILE (l->data)))
@@ -109,5 +111,14 @@ nautilus_tracker_directory_is_tracked (GFile *directory)
         }
     }
 
+    single_locations = get_tracker_locations (TRACKER_KEY_SINGLE_DIRECTORIES);
+    for (l = single_locations; l != NULL; l = l->next)
+    {
+        if (g_file_equal (directory, G_FILE (l->data)))
+        {
+            return TRUE;
+        }
+    }
+
     return FALSE;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]