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 / recent.py < prev    next >
Encoding:
Python Source  |  2007-04-09  |  1.8 KB  |  64 lines

  1. from gettext import gettext as _
  2. import gobject, gtk, gnome
  3.  
  4. import deskbar
  5. import deskbar.Handler
  6. import deskbar.Match
  7. import deskbar.Utils
  8.  
  9. from deskbar.defs import VERSION
  10. from deskbar.Watcher import FileWatcher
  11.  
  12. def _check_requirements():
  13.     if gtk.pygtk_version >= (2,9,0):
  14.         return (deskbar.Handler.HANDLER_IS_HAPPY, None, None)
  15.     return (deskbar.Handler.HANDLER_IS_NOT_APPLICABLE, _("This handler requires a more recent gtk version (2.9.0 or newer)."), None)
  16.  
  17. HANDLERS = {
  18.     "RecentHandler" : {
  19.         "name": _("Recent Documents"),
  20.         "description": _("Retrieve your recently accessed files and locations"),
  21.         "requirements": _check_requirements,
  22.         "version": VERSION,
  23.     },
  24. }
  25.  
  26. class RecentMatch(deskbar.Match.Match):
  27.     def __init__(self, backend, recent_infos, **args):
  28.         deskbar.Match.Match.__init__(self, backend, name=recent_infos.get_display_name(), **args)
  29.         self._icon = recent_infos.get_icon(gtk.ICON_SIZE_MENU) # TODO: make use of deskbar.ICON_XXX ?
  30.         
  31.         self.recent_infos = recent_infos
  32.                 
  33.     def action(self, text=None):
  34.         deskbar.Utils.url_show_file(self.recent_infos.get_uri())
  35.     
  36.     def is_valid(self, text=None):
  37.         return self.recent_infos.exists()
  38.         
  39.     def get_category(self):
  40.         return "files" 
  41.         
  42.     def get_verb(self):
  43.         return _("Open %s") % "<b>%(name)s</b>"
  44.     
  45.     def get_hash(self, text=None):
  46.         return self.recent_infos.get_uri()
  47.  
  48. class RecentHandler(deskbar.Handler.Handler):
  49.     def __init__(self):
  50.         deskbar.Handler.Handler.__init__(self, gtk.STOCK_FILE)
  51.                 self._recent_manager = gtk.recent_manager_get_default()
  52.         
  53.     def query(self, query):
  54.         result = []
  55.         for recent in self._recent_manager.get_items():
  56.             if not recent.get_display_name().lower().startswith(query): continue
  57.             if not recent.exists(): continue
  58.             result.append (RecentMatch (self, recent))
  59.         return result
  60.             
  61.  
  62.  
  63.         
  64.