From: Carlos Garnacho Date: Tue, 7 Mar 2023 23:01:53 +0000 (+0100) Subject: searchengine: Ensure some GFileInfo fields X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~5^2~41^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=deacc63d54e522f51b6f36d8c6b3067c8bd834b1;p=gtk4.git searchengine: Ensure some GFileInfo fields The search provider should make it sure there are some specific GFileInfo fields set. Fix the mimetype extraction from the query, and use that to fill in the missing gaps the best we can. --- diff --git a/gtk/gtksearchenginetracker3.c b/gtk/gtksearchenginetracker3.c index cb4dd2d6ce..5ce8916f39 100644 --- a/gtk/gtksearchenginetracker3.c +++ b/gtk/gtksearchenginetracker3.c @@ -41,7 +41,7 @@ #define SEARCH_QUERY_BASE(__PATTERN__) \ "SELECT ?url " \ " nfo:fileName(?urn) " \ - " nie:mimeType(?urn)" \ + " nie:mimeType(?ie)" \ " nfo:fileSize(?urn)" \ " nfo:fileLastModified(?urn)" \ "FROM tracker:FileSystem " \ @@ -49,6 +49,7 @@ " ?urn a nfo:FileDataObject ;" \ " nie:url ?url ; " \ " fts:match ~match . " \ + " OPTIONAL { ?urn nie:interpretedAs ?ie } ." \ __PATTERN__ \ "} " \ "ORDER BY DESC(fts:rank(?urn)) DESC(?url)" @@ -142,7 +143,18 @@ create_file_info (GFile *file, str = tracker_sparql_cursor_get_string (cursor, 2, NULL); if (str) - g_file_info_set_content_type (info, str); + { + g_file_info_set_content_type (info, str); + g_file_info_set_attribute_uint32 (info, "standard::type", + strcmp (str, "inode/directory") == 0 ? + G_FILE_TYPE_DIRECTORY : + G_FILE_TYPE_REGULAR); + } + else + { + g_file_info_set_content_type (info, "application/text"); + g_file_info_set_attribute_uint32 (info, "standard::type", G_FILE_TYPE_UNKNOWN); + } g_file_info_set_size (info, tracker_sparql_cursor_get_integer (cursor, 3));