[rygel] tracker: Provide 'Years' hierarchy
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rygel] tracker: Provide 'Years' hierarchy
- Date: Sat, 5 Dec 2009 01:22:39 +0000 (UTC)
commit 6985934616b7ed03cdcf8ab7a4cfc749d85421c9
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Fri Dec 4 20:05:22 2009 +0200
tracker: Provide 'Years' hierarchy
Enable user to browse pictures and videos by year of creation.
src/plugins/tracker/Makefile.am | 1 +
src/plugins/tracker/rygel-tracker-pictures.vala | 3 +
src/plugins/tracker/rygel-tracker-videos.vala | 1 +
src/plugins/tracker/rygel-tracker-years.vala | 60 +++++++++++++++++++++++
4 files changed, 65 insertions(+), 0 deletions(-)
---
diff --git a/src/plugins/tracker/Makefile.am b/src/plugins/tracker/Makefile.am
index ac36bcd..076cbf4 100644
--- a/src/plugins/tracker/Makefile.am
+++ b/src/plugins/tracker/Makefile.am
@@ -17,6 +17,7 @@ librygel_media_tracker_la_SOURCES = \
rygel-tracker-pictures.vala \
rygel-tracker-metadata-values.vala \
rygel-tracker-tags.vala \
+ rygel-tracker-years.vala \
rygel-tracker-search-container.vala \
rygel-tracker-query.vala \
rygel-tracker-query-triplet.vala \
diff --git a/src/plugins/tracker/rygel-tracker-pictures.vala b/src/plugins/tracker/rygel-tracker-pictures.vala
index 86222a0..dcba0ae 100644
--- a/src/plugins/tracker/rygel-tracker-pictures.vala
+++ b/src/plugins/tracker/rygel-tracker-pictures.vala
@@ -27,6 +27,8 @@ using Gee;
* Container listing Pictures content hierarchy.
*/
public class Rygel.TrackerPictures : Rygel.SimpleContainer {
+ private const string[] KEY_CHAIN = { "nie:contentCreated", null };
+
public TrackerPictures (string id,
MediaContainer parent,
string title) {
@@ -35,6 +37,7 @@ public class Rygel.TrackerPictures : Rygel.SimpleContainer {
var item_factory = new TrackerPictureItemFactory ();
this.add_child (new TrackerTags ("19", this, item_factory));
+ this.add_child (new TrackerYears ("22", this, item_factory));
}
}
diff --git a/src/plugins/tracker/rygel-tracker-videos.vala b/src/plugins/tracker/rygel-tracker-videos.vala
index bc798de..0834aac 100644
--- a/src/plugins/tracker/rygel-tracker-videos.vala
+++ b/src/plugins/tracker/rygel-tracker-videos.vala
@@ -35,6 +35,7 @@ public class Rygel.TrackerVideos : Rygel.SimpleContainer {
var item_factory = new TrackerVideoItemFactory ();
this.add_child (new TrackerTags ("20", this, item_factory));
+ this.add_child (new TrackerYears ("23", this, item_factory));
}
}
diff --git a/src/plugins/tracker/rygel-tracker-years.vala b/src/plugins/tracker/rygel-tracker-years.vala
new file mode 100644
index 0000000..975fdd7
--- /dev/null
+++ b/src/plugins/tracker/rygel-tracker-years.vala
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2009 Nokia Corporation.
+ *
+ * Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
+ * <zeeshan ali nokia com>
+ *
+ * This file is part of Rygel.
+ *
+ * Rygel is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Rygel is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+using Gee;
+
+/**
+ * Container listing content hierarchy by year of creation.
+ */
+public class Rygel.TrackerYears : Rygel.TrackerMetadataValues {
+ private const string[] KEY_CHAIN = { "nie:contentCreated", null };
+
+ public TrackerYears (string id,
+ MediaContainer parent,
+ TrackerItemFactory item_factory) {
+ base (id,
+ parent,
+ "Year",
+ item_factory,
+ KEY_CHAIN,
+ year_id_func,
+ year_id_func,
+ year_filter_func);
+ }
+
+ private static string year_id_func (string value) {
+ return value.ndup (4);
+ }
+
+ private static string year_filter_func (string variable, string value) {
+ var year = year_id_func (value);
+ var next_year = (year.to_int () + 1).to_string ();
+
+ year += "-01-01T00:00:00Z";
+ next_year += "-01-01T00:00:00Z";
+
+ return variable + " > \"" + year + "\" && " +
+ variable + " < \"" + next_year + "\"";
+ }
+}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]