[tracker] Initial version of tracker-explorer
- From: Robert James Taylor <robtaylor src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker] Initial version of tracker-explorer
- Date: Mon, 6 Jul 2009 17:43:56 +0000 (UTC)
commit f8a0199f770948dd42881c7370a90ba92e428c47
Author: Rob Taylor <rob taylor codethink co uk>
Date: Thu Apr 30 20:29:20 2009 +0100
Initial version of tracker-explorer
tracker-explorer has the aim of becoming a tool to navigate your data, using as-you-type searching.
This is a very basic initial version that dynamically fills a list of results with RDF objects as you type.
configure.ac | 1 +
src/Makefile.am | 3 +
src/tracker-explorer/Makefile.am | 52 +++++++++++++++++++
src/tracker-explorer/explorer.vala | 100 ++++++++++++++++++++++++++++++++++++
4 files changed, 156 insertions(+), 0 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 62b9589..b8e15db 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1401,6 +1401,7 @@ AC_CONFIG_FILES([
src/tracker-preferences/Makefile
src/tracker-preferences/tracker-preferences.desktop.in
src/tracker-search-tool/Makefile
+ src/tracker-explorer/Makefile
src/tracker-search-tool/tracker-search-tool.desktop.in
src/tracker-utils/Makefile
src/plugins/Makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index eb623a4..9c8212f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,6 +30,8 @@ SUBDIRS = \
tracker-utils \
tracker-extract \
tracker-miner-fs \
+ tracker-indexer \
+ tracker-explorer \
$(build_libtrackergtk) \
$(build_tracker_applet) \
$(build_tracker_search_tool) \
@@ -46,6 +48,7 @@ DIST_SUBDIRS = \
tracker-fts \
tracker-store \
tracker-utils \
+ tracker-explorer \
tracker-extract \
tracker-miner-fs \
libtracker-gtk \
diff --git a/src/tracker-explorer/Makefile.am b/src/tracker-explorer/Makefile.am
new file mode 100644
index 0000000..9ba0265
--- /dev/null
+++ b/src/tracker-explorer/Makefile.am
@@ -0,0 +1,52 @@
+bin_PROGRAMS = tracker-explorer
+
+tracker_explorer_VALASOURCES = \
+ explorer.vala \
+ $(NULL)
+
+
+tracker_explorer_SOURCES = \
+ $(tracker_explorer_VALASOURCES:.vala=.c) \
+ $(NULL)
+
+tracker_explorer.vala.stamp: $(tracker_explorer_VALASOURCES)
+ $(VALAC) -C -g --pkg dbus-glib-1 --pkg gee-1.0 --pkg gtk+-2.0 $^
+ touch tracker_explorer.vala.stamp
+
+tracker_explorer_CFLAGS = \
+ $(WARN_CFLAGS) \
+ $(GLIB2_CFLAGS) \
+ $(GCOV_CFLAGS) \
+ $(GIO_CFLAGS) \
+ $(DBUS_CFLAGS) \
+ $(LIBTRACKERGTK_CFLAGS) \
+ $(NULL)
+
+tracker_explorer_LDADD = \
+ $(GLIB2_LIBS) \
+ $(GIO_LIBS) \
+ $(GCOV_LIBS) \
+ $(DBUS_LIBS) \
+ $(LIBTRACKERGTK_LIBS) \
+ $(NULL)
+
+EXTRA_DIST = \
+ $(tracker_explorer_SOURCES) \
+ $(tracker_explorer_VALASOURCES) \
+ tracker_explorer.vala.stamp \
+ $(NULL)
+
+DISTCLEANFILES = \
+ *.gcno \
+ *.gcda \
+ $(NULL)
+
+MAINTAINERCLEANFILES = \
+ $(tracker_explorer_SOURCES) \
+ tracker_explorer.vala.stamp \
+ $(NULL)
+
+BUILT_SOURCES = \
+ tracker_explorer.vala.stamp \
+ $(NULL)
+
diff --git a/src/tracker-explorer/explorer.vala b/src/tracker-explorer/explorer.vala
new file mode 100644
index 0000000..d7dfd0e
--- /dev/null
+++ b/src/tracker-explorer/explorer.vala
@@ -0,0 +1,100 @@
+using Gtk;
+
+[DBus (name = "org.freedesktop.Tracker.Resources")]
+interface Resources : GLib.Object {
+ public abstract void Delete (string subject, string predicate, string object_) throws DBus.Error;
+ public abstract void Insert (string subject, string predicate, string object_) throws DBus.Error;
+ public abstract void Load (string url) throws DBus.Error;
+ public abstract string[,] SparqlQuery (string query) throws DBus.Error;
+ public abstract void SparqlUpdate (string query) throws DBus.Error;
+}
+
+public class Explorer {
+
+ private Resources tracker;
+ private ListStore listmodel;
+
+ public Explorer() {
+ var conn = DBus.Bus.get (DBus.BusType.SESSION);
+ tracker = (Resources) conn.get_object ("org.freedesktop.Tracker",
+ "/org/freedesktop/Tracker/Resources",
+ "org.freedesktop.Tracker.Resources");
+ }
+
+ public void setup() {
+ var window = new Window (WindowType.TOPLEVEL);
+ window.title = "Tracker Explorer";
+ window.set_size_request (300, 400);
+ window.position = WindowPosition.CENTER;
+ window.destroy += Gtk.main_quit;
+
+ var vbox = new VBox(false, 0);
+ window.add(vbox);
+
+ var entry = new Entry();
+ entry.set_text ("Test");
+ entry.changed += entry_changed;
+ vbox.pack_start(entry, false, false, 0);
+
+ var treeview = new TreeView();
+ setup_treeview(treeview);
+
+ var scrolled_window = new ScrolledWindow(null,null);
+ scrolled_window.set_policy (PolicyType.AUTOMATIC, PolicyType.AUTOMATIC);
+ scrolled_window.add_with_viewport(treeview);
+
+ vbox.pack_start(scrolled_window, true, true, 0);
+
+ window.show_all ();
+ window.destroy += Gtk.main_quit;
+ }
+
+ private void setup_treeview (TreeView view) {
+ listmodel = new ListStore (1, typeof (string));
+ view.set_model (listmodel);
+
+ view.insert_column_with_attributes (-1, "URI", new CellRendererText (), "text", 0, null);
+/*
+ var cell = new CellRendererText ();
+ cell.set ("foreground_set", true, null);
+ view.insert_column_with_attributes (-1, "Balance", cell, "text", 2, "foreground", 3, null);
+
+ TreeIter iter;
+ listmodel.append (out iter);
+ listmodel.set (iter, 0, "My Visacard", 1, "card", 2, "102,10", 3, "red", -1);
+
+ listmodel.append (out iter);
+ listmodel.set (iter, 0, "My Mastercard", 1, "card", 2, "10,20", 3, "red", -1);
+*/
+ }
+
+
+ private void entry_changed (Editable editable) {
+ debug ("changed");
+ string query = "SELECT ?s WHERE { ?s fts:match \"%s*\" }".printf(((Entry)editable).text);
+ debug ("Query: %s", query);
+
+ try {
+ var result = tracker.SparqlQuery(query);
+ listmodel.clear();
+ foreach ( var s in result) {
+ debug ("%s", s);
+ TreeIter iter;
+ listmodel.append (out iter);
+ listmodel.set (iter, 0, s, -1);
+ }
+
+ } catch (DBus.Error e) {
+ }
+ }
+
+
+ static int main (string[] args) {
+ Gtk.init (ref args);
+
+ Explorer e = new Explorer();
+ e.setup();
+ Gtk.main ();
+ return 0;
+ }
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]