tracker r3045 - in trunk: . data/services src/tracker-extract



Author: mottela
Date: Tue Mar 10 18:15:39 2009
New Revision: 3045
URL: http://svn.gnome.org/viewvc/tracker?rev=3045&view=rev

Log:
Add Image:HasKeywords field

Modified:
   trunk/ChangeLog
   trunk/data/services/default.service
   trunk/data/services/image.metadata
   trunk/src/tracker-extract/tracker-iptc.c
   trunk/src/tracker-extract/tracker-xmp.c

Modified: trunk/data/services/default.service
==============================================================================
--- trunk/data/services/default.service	(original)
+++ trunk/data/services/default.service	Tue Mar 10 18:15:39 2009
@@ -70,16 +70,15 @@
 UIView=icon
 Icon=image-x-generic
 KeyMetadata1=Image:Title
-KeyMetadata2=Image:Rating
+KeyMetadata2=Image:Creator
 KeyMetadata3=Image:Country
 KeyMetadata4=Image:City
 KeyMetadata5=Image:Location
 KeyMetadata6=Image:Date
-KeyMetadata7=Image:Width
-KeyMetadata8=Image:Height
-KeyMetadata9=Image:Orientation
+KeyMetadata7=Image:Rating
+KeyMetadata8=Image:Orientation
+KeyMetadata9=Image:HasKeywords
 KeyMetadata10=Image:Software
-KeyMetadata11=Image:Creator
 TabularMetadata=File:Name;Image:Height;Image:Width;Image:Date;File:Modified;Image:Creator;Image:Software;
 TileMetadata=Image:Title;Image:Height;Image:Width;Image:Date;Image:Creator;Image:Software;Image:Comments;
 Mimes=application/vnd.oasis.opendocument.image;application/x-krita;sketch/png;

Modified: trunk/data/services/image.metadata
==============================================================================
--- trunk/data/services/image.metadata	(original)
+++ trunk/data/services/image.metadata	Tue Mar 10 18:15:39 2009
@@ -53,7 +53,6 @@
 Parent=DC:Description
 Weight=5
 
-
 [Image:Description]
 DisplayName=Description
 Description=The description embedded in the image
@@ -143,3 +142,8 @@
 DisplayName=City
 Description=City where the image was taken or the city shown in the image.
 DataType=string
+
+[Image:HasKeywords]
+DisplayName=HasKeywords
+Description=Field to improve performance when only the information about the existance of keywords is relevant.
+DataType=Integer

Modified: trunk/src/tracker-extract/tracker-iptc.c
==============================================================================
--- trunk/src/tracker-extract/tracker-iptc.c	(original)
+++ trunk/src/tracker-extract/tracker-iptc.c	Tue Mar 10 18:15:39 2009
@@ -88,6 +88,13 @@
 	} else {
 		new_value = tracker_escape_metadata (value);
 		g_hash_table_insert (metadata, g_strdup (key), new_value);
+
+		/* FIXME Postprocessing is evil and should be elsewhere */
+		if (strcmp (key, "Image:Keywords") == 0) {
+			g_hash_table_insert (metadata,
+					     g_strdup ("Image:HasKeywords"),
+					     tracker_escape_metadata ("1"));
+		}
 	}
 }
 
@@ -131,5 +138,6 @@
 		}
 	}
 	iptc_data_unref (iptc);
+
 #endif
 }

Modified: trunk/src/tracker-extract/tracker-xmp.c
==============================================================================
--- trunk/src/tracker-extract/tracker-xmp.c	(original)
+++ trunk/src/tracker-extract/tracker-xmp.c	Tue Mar 10 18:15:39 2009
@@ -273,12 +273,14 @@
 		}
 		else if (strcmp (name, "keywords") == 0) {
 			tracker_append_string_to_hash_table (metadata, "Image:Keywords", value, append, FALSE);
+			tracker_append_string_to_hash_table (metadata, "Image:HasKeywords", "1", FALSE, FALSE);
 		}
 		else if (strcmp (name, "subject") == 0) {
 			tracker_append_string_to_hash_table (metadata, "DC:Subject", value, append, FALSE);
 
 			/* The subject field may contain keywords as well */
 			tracker_append_string_to_hash_table (metadata, "Image:Keywords", value, TRUE, FALSE);
+			tracker_append_string_to_hash_table (metadata, "Image:HasKeywords", "1", FALSE, FALSE);
 		}
 		else if (strcmp (name, "publisher") == 0) {
 			tracker_append_string_to_hash_table (metadata, "DC:Publisher", value, append, FALSE);
@@ -392,6 +394,7 @@
 
 			/* Added to the valid keywords */
 		        tracker_append_string_to_hash_table (metadata, "Image:Keywords", value, TRUE, FALSE);
+			tracker_append_string_to_hash_table (metadata, "Image:HasKeywords", "1", FALSE, FALSE);
 		}
 	}
 	/* Photoshop scheme */
@@ -401,12 +404,14 @@
 
 			/* Added to the valid keywords */
 		        tracker_append_string_to_hash_table (metadata, "Image:Keywords", value, TRUE, FALSE);
+			tracker_append_string_to_hash_table (metadata, "Image:HasKeywords", "1", FALSE, FALSE);
 		}
 		else if (strcmp (name, "Country") == 0) {
 			tracker_append_string_to_hash_table (metadata, "Image:Country", value, append, FALSE);
 
 			/* Added to the valid keywords */
 		        tracker_append_string_to_hash_table (metadata, "Image:Keywords", value, TRUE, FALSE);
+			tracker_append_string_to_hash_table (metadata, "Image:HasKeywords", "1", FALSE, FALSE);			
 		}
 	}
 



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