[kupfer] tracker: Provide content for simple .savedSearch files
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer] tracker: Provide content for simple .savedSearch files
- Date: Mon, 4 Jan 2010 18:34:16 +0000 (UTC)
commit bf35cefd65a2e85106a6ad9d4376a36f8e80b5ac
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Sun Jan 3 18:36:19 2010 +0100
tracker: Provide content for simple .savedSearch files
kupfer/plugin/tracker.py | 27 ++++++++++++++++++++++++++-
1 files changed, 26 insertions(+), 1 deletions(-)
---
diff --git a/kupfer/plugin/tracker.py b/kupfer/plugin/tracker.py
index ecc1261..3b6ec0e 100644
--- a/kupfer/plugin/tracker.py
+++ b/kupfer/plugin/tracker.py
@@ -1,3 +1,6 @@
+import os
+from xml.etree.cElementTree import ElementTree
+
import gobject
from kupfer.objects import Action, Source, Leaf
@@ -10,6 +13,7 @@ from kupfer import plugin_support
__kupfer_name__ = _("Tracker")
__kupfer_sources__ = ("TrackerTagsSource", )
__kupfer_text_sources__ = ()
+__kupfer_contents__ = ("TrackerQuerySource", )
__kupfer_actions__ = (
"TrackerSearch",
"TrackerSearchHere",
@@ -17,7 +21,7 @@ __kupfer_actions__ = (
"TrackerRemoveTag",
)
__description__ = _("Tracker desktop search integration")
-__version__ = ""
+__version__ = "2010-01-03"
__author__ = "Ulrik Sverdrup <ulrik sverdrup gmail com>"
plugin_support.check_dbus_connection()
@@ -101,6 +105,27 @@ class TrackerQuerySource (Source):
def get_icon_name(self):
return "tracker"
+ @classmethod
+ def decorates_type(cls):
+ return FileLeaf
+ @classmethod
+ def decorate_item(cls, leaf):
+ # FIXME: Very simplified .savedSearch parsing, so far we only support
+ # the query, without additional filtering. The simplest form of
+ # .savedSearch file is saved by nautilus as following:
+ # <query version="1.0">
+ # <text>QUERY GOES HERE</text>
+ # </query>
+
+ if not leaf.object.endswith(".savedSearch"):
+ return None
+ try:
+ et = ElementTree(file=leaf.object)
+ query = et.getroot().find("text").text
+ return cls(query)
+ except Exception:
+ return None
+
# FIXME: Use dbus for this communication
def get_tracker_tags(for_file=None):
from os import popen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]