[tracker] Fixed remarks raised by Martyn, fixed mimetype for Remove thumbnails
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] Fixed remarks raised by Martyn, fixed mimetype for Remove thumbnails
- Date: Mon, 1 Feb 2010 16:05:45 +0000 (UTC)
commit 731c3b8a360fe8b9c170529ec4c741ba0db4f48a
Author: Philip Van Hoof <philip codeminded be>
Date: Mon Feb 1 16:07:47 2010 +0100
Fixed remarks raised by Martyn, fixed mimetype for Remove thumbnails
src/libtracker-miner/tracker-miner-fs.c | 46 +++++++++++++++++--------
src/libtracker-miner/tracker-thumbnailer.c | 49 ++++------------------------
2 files changed, 38 insertions(+), 57 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index 1eb8b83..67af067 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -61,6 +61,8 @@ typedef struct {
typedef struct {
GMainLoop *main_loop;
gchar *iri;
+ gchar *mime;
+ gboolean get_mime;
} SparqlQueryData;
typedef struct {
@@ -913,9 +915,11 @@ sparql_query_cb (GObject *object,
val = g_ptr_array_index (query_results, 0);
data->iri = g_strdup (val[0]);
+ if (data->get_mime)
+ data->mime = g_strdup (val[1]);
}
- g_main_loop_quit (data->main_loop);
+ g_main_loop_quit (data->main_loop);
}
static void
@@ -1027,14 +1031,22 @@ item_add_or_update (TrackerMinerFS *fs,
static gboolean
item_query_exists (TrackerMinerFS *miner,
GFile *file,
- gchar **iri)
+ gchar **iri,
+ gchar **mime)
{
gboolean result;
gchar *sparql, *uri;
SparqlQueryData data = { 0 };
+ data.get_mime = (mime != NULL);
+
uri = g_file_get_uri (file);
- sparql = g_strdup_printf ("SELECT ?s WHERE { ?s nie:url '%s' }", uri);
+
+ if (data.get_mime) {
+ sparql = g_strdup_printf ("SELECT ?s ?m WHERE { ?s nie:url '%s' . OPTIONAL { ?s nie:mimeType ?m } }", uri);
+ } else {
+ sparql = g_strdup_printf ("SELECT ?s WHERE { ?s nie:url '%s' }", uri);
+ }
data.main_loop = g_main_loop_new (NULL, FALSE);
@@ -1055,6 +1067,12 @@ item_query_exists (TrackerMinerFS *miner,
g_free (data.iri);
}
+ if (mime) {
+ *mime = data.mime;
+ } else {
+ g_free (data.mime);
+ }
+
g_free (sparql);
g_free (uri);
@@ -1067,28 +1085,24 @@ item_remove (TrackerMinerFS *fs,
{
GString *sparql;
gchar *uri, *slash_uri;
+ gchar *mime = NULL;
ProcessData *data;
- GFileInfo *file_info;
uri = g_file_get_uri (file);
g_debug ("Removing item: '%s' (Deleted from filesystem)",
uri);
- if (!item_query_exists (fs, file, NULL)) {
+ if (!item_query_exists (fs, file, NULL, &mime)) {
g_debug (" File does not exist anyway (uri:'%s')", uri);
g_free (uri);
+ g_free (mime);
return TRUE;
}
- file_info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
- G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
- NULL, NULL);
+ tracker_thumbnailer_remove_add (uri, mime);
- if (file_info) {
- tracker_thumbnailer_remove_add (uri, g_file_info_get_content_type (file_info));
- g_object_unref (file_info);
- }
+ g_free (mime);
if (!g_str_has_suffix (uri, "/")) {
slash_uri = g_strconcat (uri, "/", NULL);
@@ -1176,7 +1190,7 @@ item_writeback (TrackerMinerFS *fs,
g_debug ("Updating item: '%s' (Writeback event)", uri);
- if (!item_query_exists (fs, working_file, NULL)) {
+ if (!item_query_exists (fs, working_file, NULL, NULL)) {
g_debug (" File does not exist anyway (uri:'%s')", uri);
return TRUE;
}
@@ -1323,7 +1337,7 @@ item_move (TrackerMinerFS *fs,
source_uri = g_file_get_uri (source_file);
/* Get 'source' ID */
- if (!item_query_exists (fs, source_file, &source_iri)) {
+ if (!item_query_exists (fs, source_file, &source_iri, NULL)) {
gboolean retval;
g_message ("Source file '%s' not found in store to move, indexing '%s' from scratch", source_uri, uri);
@@ -1701,6 +1715,7 @@ should_change_index_for_file (TrackerMinerFS *fs,
t.tm_sec,
uri);
+ data.get_mime = FALSE;
data.main_loop = g_main_loop_new (NULL, FALSE);
tracker_miner_execute_sparql (TRACKER_MINER (fs),
@@ -1714,6 +1729,7 @@ should_change_index_for_file (TrackerMinerFS *fs,
g_main_loop_unref (data.main_loop);
g_free (data.iri);
+ g_free (data.mime);
g_free (query);
g_free (uri);
@@ -1905,7 +1921,7 @@ monitor_item_moved_cb (TrackerMonitor *monitor,
path = g_file_get_path (file);
other_path = g_file_get_path (other_file);
- source_stored = item_query_exists (fs, file, NULL);
+ source_stored = item_query_exists (fs, file, NULL, NULL);
should_process_other = should_check_file (fs, other_file, is_directory);
g_debug ("%s:'%s'->'%s':%s (%s) (move monitor event or user request)",
diff --git a/src/libtracker-miner/tracker-thumbnailer.c b/src/libtracker-miner/tracker-thumbnailer.c
index 4a85518..904e6ce 100644
--- a/src/libtracker-miner/tracker-thumbnailer.c
+++ b/src/libtracker-miner/tracker-thumbnailer.c
@@ -202,11 +202,8 @@ tracker_thumbnailer_init (void)
private->service_is_available = TRUE;
}
- if (mime_types)
- g_strfreev (mime_types);
-
- if (uri_schemes)
- g_strfreev (uri_schemes);
+ g_strfreev (mime_types);
+ g_strfreev (uri_schemes);
return TRUE;
}
@@ -224,7 +221,6 @@ tracker_thumbnailer_move_add (const gchar *from_uri,
{
TrackerThumbnailerPrivate *private;
- gchar *used_from_uri, *used_to_uri;
/* mime_type can be NULL */
@@ -242,30 +238,12 @@ tracker_thumbnailer_move_add (const gchar *from_uri,
return FALSE;
}
- /* Add new URI (detect if we got passed a path) */
- if (!strstr (from_uri, "://")) {
- used_from_uri = g_filename_to_uri (from_uri, NULL, NULL);
- } else {
- used_from_uri = g_strdup (from_uri);
- }
-
- if (!strstr (to_uri, "://")) {
- used_to_uri = g_filename_to_uri (to_uri, NULL, NULL);
- } else {
- used_to_uri = g_strdup (to_uri);
- }
-
- private->moves_from = g_slist_prepend (private->moves_from, used_from_uri);
- private->moves_to = g_slist_prepend (private->moves_to, used_to_uri);
+ private->moves_from = g_slist_prepend (private->moves_from, g_strdup (from_uri));
+ private->moves_to = g_slist_prepend (private->moves_to, g_strdup (to_uri));
g_debug ("Thumbnailer request to move uri from:'%s' to:'%s' queued",
- used_from_uri,
- used_to_uri);
-
- if ((g_slist_length (private->moves_from) +
- g_slist_length (private->removes)) > 50) {
- tracker_thumbnailer_send ();
- }
+ from_uri,
+ to_uri);
return TRUE;
}
@@ -275,7 +253,6 @@ tracker_thumbnailer_remove_add (const gchar *uri,
const gchar *mime_type)
{
TrackerThumbnailerPrivate *private;
- gchar *used_uri;
/* mime_type can be NULL */
@@ -292,22 +269,10 @@ tracker_thumbnailer_remove_add (const gchar *uri,
return FALSE;
}
- /* Add new URI (detect if we got passed a path) */
- if (!strstr (uri, "://")) {
- used_uri = g_filename_to_uri (uri, NULL, NULL);
- } else {
- used_uri = g_strdup (uri);
- }
-
- private->removes = g_slist_prepend (private->removes, used_uri);
+ private->removes = g_slist_prepend (private->removes, g_strdup (uri));
g_debug ("Thumbnailer request to remove uri:'%s', appended to queue", uri);
- if ((g_slist_length (private->moves_from) +
- g_slist_length (private->removes)) > 50) {
- tracker_thumbnailer_send ();
- }
-
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]