[totem] Fixes bug #614839 - Tracker-Plugin: Migrate to Tracker 0.8
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem] Fixes bug #614839 - Tracker-Plugin: Migrate to Tracker 0.8
- Date: Tue, 13 Apr 2010 10:27:29 +0000 (UTC)
commit f0119f724c1c72cda08f324154a02fa83ab9fa30
Author: Martyn Russell <martyn lanedo com>
Date: Tue Apr 13 11:26:35 2010 +0100
Fixes bug #614839 - Tracker-Plugin: Migrate to Tracker 0.8
- Only shows count and results for videos that exist (i.e. not for
memory cards which are not mounted)
- Orders results by rank then by url
- Fixes includes
- Fixes configure.in to work with 0.8 and 0.9
configure.in | 6 +++-
src/plugins/tracker/totem-tracker-widget.c | 54 ++++++++++++++++-----------
src/plugins/tracker/totem-tracker-widget.h | 2 +-
3 files changed, 38 insertions(+), 24 deletions(-)
---
diff --git a/configure.in b/configure.in
index e06f1ac..d7af409 100644
--- a/configure.in
+++ b/configure.in
@@ -504,7 +504,11 @@ for plugin in ${used_plugins}; do
fi
;;
tracker)
- PKG_CHECK_MODULES(TRACKER, tracker-client-0.7 >= 0.7.1, [HAVE_TRACKER=yes], [HAVE_TRACKER=no])
+ PKG_CHECK_MODULES(TRACKER, tracker-client-0.8 >= 0.8.1, [HAVE_TRACKER=yes], [HAVE_TRACKER=no])
+ if test "${HAVE_TRACKER}" != "yes" ; then
+ PKG_CHECK_MODULES(TRACKER, tracker-client-0.9 >= 0.9.0, [HAVE_TRACKER=yes], [HAVE_TRACKER=no])
+ fi
+
if test "${HAVE_TRACKER}" != "yes" ; then
plugin_error_or_ignore "you need the tracker development headers installed for the tracker plugin"
add_plugin="0"
diff --git a/src/plugins/tracker/totem-tracker-widget.c b/src/plugins/tracker/totem-tracker-widget.c
index 7a57d28..31ef4ed 100644
--- a/src/plugins/tracker/totem-tracker-widget.c
+++ b/src/plugins/tracker/totem-tracker-widget.c
@@ -1,8 +1,9 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
*
* The _get_result_count method taken from the tracker-client.h file from libtracker
- * Copyright (C) 2006, Mr Jamie McCracken (jamiemcc gnome org)
- * Copyright (C) 2007 Javier Goday <jgoday gmail com>
+ * Copyright (C) 2006, Jamie McCracken <jamiemcc gnome org>
+ * Copyright (C) 2007, Javier Goday <jgoday gmail com>
+ * Copyright (C) 2010, Martyn Russell <martyn lanedo com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -19,7 +20,9 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
- * Author : Javier Goday <jgoday gmail com>
+ * Author: Jamie McCracken <jamiemcc gnome org>
+ * Javier Goday <jgoday gmail com>
+ * Martyn Russell <martyn lanedo com>
*/
#include "config.h"
@@ -31,7 +34,7 @@
#include <glib/gi18n-lib.h>
#include <gio/gio.h>
#include <dbus/dbus.h>
-#include <libtracker-client/tracker.h>
+#include <libtracker-client/tracker-client.h>
#include "totem-tracker-widget.h"
#include "totem-cell-renderer-video.h"
@@ -188,7 +191,7 @@ search_results_new (TotemTrackerWidget *widget,
return NULL;
}
- client = tracker_connect (TRUE, G_MAXINT);
+ client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, G_MAXINT);
if (!client) {
return NULL;
}
@@ -209,12 +212,16 @@ search_results_free (SearchResultsData *srd)
return;
}
+ if (srd->cookie != 0) {
+ tracker_cancel_call (srd->client, srd->cookie);
+ }
+
if (srd->widget) {
g_object_unref (srd->widget);
}
if (srd->client) {
- tracker_disconnect (srd->client);
+ g_object_unref (srd->client);
}
g_free (srd->search_text);
@@ -339,6 +346,9 @@ do_search (TotemTrackerWidget *widget)
gchar *fts, *query;
guint offset;
+ /* Cancel previous searches */
+ /* tracker_cancel_call (widget->priv->cookie_id); */
+
/* Clear the list store */
gtk_list_store_clear (GTK_LIST_STORE (widget->priv->result_store));
@@ -376,18 +386,18 @@ do_search (TotemTrackerWidget *widget)
* music or some other specialised content.
*/
if (fts) {
- query = g_strdup_printf ("SELECT COUNT(?urn) AS items "
+ query = g_strdup_printf ("SELECT COUNT(?urn) "
"WHERE {"
- " ?urn a ?type ."
- " ?urn fts:match \"%s\" "
- " FILTER (?type = nmm:Video) "
+ " ?urn a nmm:Video ;"
+ " fts:match \"%s\" ;"
+ " tracker:available true . "
"}",
fts);
} else {
- query = g_strdup_printf ("SELECT COUNT(?urn) AS items "
+ query = g_strdup_printf ("SELECT COUNT(?urn) "
"WHERE {"
- " ?urn a ?type ."
- " FILTER (?type = nmm:Video) "
+ " ?urn a nmm:Video ;"
+ " tracker:available true . "
"}");
}
@@ -408,25 +418,25 @@ do_search (TotemTrackerWidget *widget)
}
if (fts) {
- query = g_strdup_printf ("SELECT ?urn "
+ query = g_strdup_printf ("SELECT nie:url(?urn) "
"WHERE {"
- " ?urn a ?type ."
- " ?urn fts:match \"%s\" "
- " FILTER (?type = nmm:Video) "
+ " ?urn a nmm:Video ;"
+ " fts:match \"%s\" ;"
+ " tracker:available true . "
"} "
- "ORDER BY ASC(?urn) "
+ "ORDER BY DESC(fts:rank(?urn)) ASC(nie:url(?urn)) "
"OFFSET %d "
"LIMIT %d",
fts,
offset,
TOTEM_TRACKER_MAX_RESULTS_SIZE);
} else {
- query = g_strdup_printf ("SELECT ?urn "
+ query = g_strdup_printf ("SELECT nie:url(?urn) "
"WHERE {"
- " ?urn a ?type ."
- " FILTER (?type = nmm:Video) "
+ " ?urn a nmm:Video ; "
+ " tracker:available true . "
"} "
- "ORDER BY ASC(?urn) "
+ "ORDER BY DESC(fts:rank(?urn)) ASC(nie:url(?urn)) "
"OFFSET %d "
"LIMIT %d",
offset,
diff --git a/src/plugins/tracker/totem-tracker-widget.h b/src/plugins/tracker/totem-tracker-widget.h
index bf87b37..5bb2845 100644
--- a/src/plugins/tracker/totem-tracker-widget.h
+++ b/src/plugins/tracker/totem-tracker-widget.h
@@ -25,7 +25,7 @@
#include "totem.h"
#include <gtk/gtk.h>
-#include <libtracker-client/tracker.h>
+#include <libtracker-client/tracker-client.h>
#define TOTEM_TYPE_TRACKER_WIDGET (totem_tracker_widget_get_type ())
#define TOTEM_TRACKER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TOTEM_TYPE_TRACKER_WIDGET, TotemTrackerWidget))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]