[gnome-photos] base-item: Query the nfo:fileCreated or nie:contentCreated too



commit c437eb959c8afdca1ca9ca41c22bbcefcca3872b
Author: Debarshi Ray <debarshir gnome org>
Date:   Wed Nov 14 15:11:39 2012 +0100

    base-item: Query the nfo:fileCreated or nie:contentCreated too
    
    Original patch from Meg Ford for gnome-documents.

 src/photos-base-item.c     |   18 ++++++++++++++++++
 src/photos-base-item.h     |    2 ++
 src/photos-query-builder.c |    3 ++-
 src/photos-query.h         |    3 ++-
 4 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/src/photos-base-item.c b/src/photos-base-item.c
index 4d3a3e8..56962e2 100644
--- a/src/photos-base-item.c
+++ b/src/photos-base-item.c
@@ -58,6 +58,7 @@ struct _PhotosBaseItemPrivate
   gchar *resource_urn;
   gchar *type_description;
   gchar *uri;
+  gint64 date_created;
   gint64 mtime;
 };
 
@@ -493,6 +494,7 @@ photos_base_item_populate_from_cursor (PhotosBaseItem *self, TrackerSparqlCursor
 {
   PhotosBaseItemPrivate *priv = self->priv;
   GTimeVal timeval;
+  const gchar *date_created;
   const gchar *mtime;
   const gchar *title;
   const gchar *uri;
@@ -519,6 +521,15 @@ photos_base_item_populate_from_cursor (PhotosBaseItem *self, TrackerSparqlCursor
   priv->rdf_type = g_strdup (tracker_sparql_cursor_get_string (cursor, PHOTOS_QUERY_COLUMNS_RDF_TYPE, NULL));
   photos_base_item_update_info_from_type (self);
 
+  date_created = tracker_sparql_cursor_get_string (cursor, PHOTOS_QUERY_COLUMNS_DATE_CREATED, NULL);
+  if (date_created != NULL)
+    {
+      g_time_val_from_iso8601 (date_created, &timeval);
+      priv->date_created = (gint64) timeval.tv_sec;
+    }
+  else
+    priv->date_created = -1;
+
   title = tracker_sparql_cursor_get_string (cursor, PHOTOS_QUERY_COLUMNS_TITLE, NULL);
   if (title == NULL || title[0] == '\0')
     {
@@ -733,6 +744,13 @@ photos_base_item_get_author (PhotosBaseItem *self)
 }
 
 
+gint64
+photos_base_item_get_date_created (PhotosBaseItem *self)
+{
+  return self->priv->date_created;
+}
+
+
 const gchar *
 photos_base_item_get_default_app_name (PhotosBaseItem *self)
 {
diff --git a/src/photos-base-item.h b/src/photos-base-item.h
index 8574d26..3c78779 100644
--- a/src/photos-base-item.h
+++ b/src/photos-base-item.h
@@ -84,6 +84,8 @@ void                photos_base_item_destroy            (PhotosBaseItem *self);
 
 const gchar        *photos_base_item_get_author         (PhotosBaseItem *self);
 
+gint64              photos_base_item_get_date_created   (PhotosBaseItem *self);
+
 const gchar        *photos_base_item_get_default_app_name (PhotosBaseItem *self);
 
 GdkPixbuf          *photos_base_item_get_icon           (PhotosBaseItem *self);
diff --git a/src/photos-query-builder.c b/src/photos-query-builder.c
index 1c9728e..e32c2fd 100644
--- a/src/photos-query-builder.c
+++ b/src/photos-query-builder.c
@@ -142,7 +142,8 @@ photos_query_builder_query (gboolean global, gint flags)
                         "rdf:type (?urn) "
                         "nie:dataSource(?urn) "
                         "( EXISTS { ?urn nao:hasTag nao:predefined-tag-favorite } ) "
-                        "( EXISTS { ?urn nco:contributor ?contributor FILTER ( ?contributor != ?creator ) } ) ",
+                        "( EXISTS { ?urn nco:contributor ?contributor FILTER ( ?contributor != ?creator ) } ) "
+                        "tracker:coalesce(nfo:fileCreated (?urn), nie:contentCreated (?urn))",
                         where_sparql,
                         tail_sparql,
                         NULL);
diff --git a/src/photos-query.h b/src/photos-query.h
index 37c0806..1aac9a5 100644
--- a/src/photos-query.h
+++ b/src/photos-query.h
@@ -45,7 +45,8 @@ typedef enum
   PHOTOS_QUERY_COLUMNS_RDF_TYPE,
   PHOTOS_QUERY_COLUMNS_RESOURCE_URN,
   PHOTOS_QUERY_COLUMNS_RESOURCE_FAVORITE,
-  PHOTOS_QUERY_COLUMNS_RESOURCE_SHARED
+  PHOTOS_QUERY_COLUMNS_RESOURCE_SHARED,
+  PHOTOS_QUERY_COLUMNS_DATE_CREATED
 } PhotosQueryColumns;
 
 typedef enum



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