home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 February / maximum-cd-2011-02.iso / DiscContents / digsby_setup85.exe / lib / gui / searchgui.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-11-24  |  6.6 KB  |  158 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import wx
  5. import common.search as search
  6. from common import setpref, profile, action
  7. from gui.visuallisteditor import VisualListEditor, VisualListEditorList
  8.  
  9. def set_searches(engine_list, checked):
  10.     engine_dicts = [ e.dict(enabled = checked[n]) for n, e in enumerate(engine_list) ]
  11.     setpref('search.external', engine_dicts)
  12.  
  13.  
  14. class SearchEditor(VisualListEditorList):
  15.     text_alignment = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL
  16.     
  17.     def get_icon(self, searchname):
  18.         skin = skin
  19.         import gui
  20.         return skin.get('appdefaults.search.icons.' + searchname, None)
  21.  
  22.     
  23.     def OnDrawItem(self, dc, rect, n):
  24.         VisualListEditorList.OnDrawItem(self, dc, rect, n)
  25.         icon = self.get_icon(self.GetItem(n).name)
  26.         if icon is None:
  27.             return None
  28.         dc.DrawBitmap(icon, rect.Right - icon.Width - 32, rect.VCenter(icon), True)
  29.  
  30.  
  31.  
  32. class SearchEditDialog(VisualListEditor):
  33.     text_alignment = wx.ALIGN_LEFT
  34.     
  35.     def __init__(self, parent):
  36.         VisualListEditor.__init__(self, parent, list2sort = search.searches, prettynames = (lambda search: search.gui_name), listcallback = set_searches, title = _('Arrange Searches'), listclass = SearchEditor, ischecked = (lambda search: search.enabled))
  37.  
  38.  
  39.  
  40. def edit(parent = None):
  41.     search.link_prefs(profile.prefs)
  42.     SearchEditDialog(parent).Show()
  43.  
  44. from common.actions import ActionMeta
  45.  
  46. class SearchEntryBase(object):
  47.     __metaclass__ = ActionMeta
  48.  
  49.  
  50. class SearchEntry(SearchEntryBase):
  51.     
  52.     def __init__(self, searchengine, searchstring):
  53.         self.searchengine = searchengine
  54.         self.searchstring = searchstring
  55.         self.name = '%s: %s' % (searchengine.name, searchstring)
  56.  
  57.     
  58.     def __eq__(self, other):
  59.         if not self is other:
  60.             pass
  61.         return self.searchengine == other.searchengine
  62.  
  63.     
  64.     def __ne__(self, other):
  65.         return not self.__eq__(other)
  66.  
  67.     
  68.     def __hash__(self):
  69.         return hash(''.join((self.__class__.__name__, self.searchengine.__repr__())))
  70.  
  71.     
  72.     def activate(self):
  73.         self.searchengine.search(self.searchstring)
  74.  
  75.     
  76.     def menu_search_string(self):
  77.         return _('Search %s for "%s"') % (self.searchengine.gui_name, self.searchstring)
  78.  
  79.     menu_search_string = property(menu_search_string)
  80.     
  81.     def delete(self):
  82.         searches = searches
  83.         import common.search
  84.         s = searches[:]
  85.         for e in s:
  86.             if self.searchengine == e:
  87.                 e.enabled = False
  88.                 continue
  89.         
  90.         []([], [ e.dict() for e in s ])
  91.  
  92.  
  93.  
  94. class SearchOptionsEntry(SearchEntryBase):
  95.     inherited_actions = [
  96.         SearchEntry]
  97.     
  98.     def __init__(self):
  99.         self.name = '__searchoptionsentry__'
  100.  
  101.     
  102.     def __eq__(self, other):
  103.         if not self is other:
  104.             pass
  105.         return isinstance(other, self.__class__)
  106.  
  107.     
  108.     def __hash__(self):
  109.         return hash(self.name)
  110.  
  111.     
  112.     def activate(self):
  113.         edit()
  114.  
  115.     
  116.     def menu_search_string(self):
  117.         return _('Options...')
  118.  
  119.     menu_search_string = property(menu_search_string)
  120.     
  121.     def delete(self):
  122.         pass
  123.  
  124.     delete = action((lambda self: False))(delete)
  125.  
  126.  
  127. class SearchWebGroup(list):
  128.     __metaclass__ = ActionMeta
  129.     searchweb_name = _('Web Search')
  130.     
  131.     def edit(self):
  132.         edit(wx.FindWindowByName('Buddy List'))
  133.  
  134.     
  135.     def __init__(self):
  136.         self.name = self.searchweb_name
  137.  
  138.     
  139.     def __hash__(self):
  140.         return hash(self.name)
  141.  
  142.     
  143.     def display_string(self):
  144.         return self.searchweb_name
  145.  
  146.     display_string = property(display_string)
  147.  
  148.  
  149. def add_search_entries(view, search):
  150.     enabled_searches = enabled_searches
  151.     import common.search
  152.     search_group = SearchWebGroup()
  153.     (search_group.extend,)((lambda .0: for s in .0:
  154. SearchEntry(s, search))(enabled_searches()))
  155.     search_group.append(SearchOptionsEntry())
  156.     view.append(search_group)
  157.  
  158.