home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / deskbar-applet / handlers / beagle-static.py < prev    next >
Encoding:
Python Source  |  2007-04-09  |  1.4 KB  |  48 lines

  1. import os
  2. from os.path import exists, join
  3. from glob import glob
  4. from gettext import gettext as _
  5. from deskbar.defs import VERSION
  6. import gobject
  7. import deskbar.Handler, deskbar.Utils, deskbar.Match
  8. from deskbar.Utils import get_xdg_data_dirs, spawn_async
  9.  
  10. #FIXME: better way to detect beagle ?
  11. def _check_requirements():
  12.     for dir in get_xdg_data_dirs():
  13.         if glob(join(dir, "applications", "*best.desktop")) or glob(join(dir, "applications", "*beagle-search.desktop")):
  14.             return (deskbar.Handler.HANDLER_IS_HAPPY, None, None)
  15.     
  16.     return (deskbar.Handler.HANDLER_IS_NOT_APPLICABLE, "Beagle does not seem to be installed, skipping", None)
  17.  
  18. HANDLERS = {
  19.     "BeagleHandler" : {
  20.         "name": _("Beagle"),
  21.         "description": _("Search all of your documents (using Beagle)"),
  22.         "requirements": _check_requirements,
  23.         "version": VERSION,
  24.     }
  25. }
  26.  
  27. class BeagleMatch(deskbar.Match.Match):
  28.     def __init__(self, backend, **args):
  29.         deskbar.Match.Match.__init__(self, backend, **args)
  30.         
  31.     def action(self, text=None):
  32.         if not spawn_async(["beagle-search", self.name]):
  33.             spawn_async(["best", '--no-tray', '--show-window', self.name])
  34.             
  35.     def get_verb(self):
  36.         return _("Search for %s using Beagle") % "<b>%(name)s</b>"
  37.     
  38.     def get_category (self):
  39.         return "actions"
  40.     
  41.                 
  42. class BeagleHandler(deskbar.Handler.Handler):
  43.     def __init__(self):
  44.         deskbar.Handler.Handler.__init__(self, ("system-search", "best"))
  45.                 
  46.     def query(self, query):
  47.         return [BeagleMatch(self, name=query)]
  48.