def __showEnginesMenu(self):
     """
     Private slot to handle the display of the engines menu.
     """
     self.__enginesMenu.clear()
     
     engineNames = self.__openSearchManager.allEnginesNames()
     for engineName in engineNames:
         engine = self.__openSearchManager.engine(engineName)
         action = OpenSearchEngineAction(engine, self.__enginesMenu)
         action.setData(QVariant(engineName))
         self.connect(action, SIGNAL("triggered()"), self.__changeCurrentEngine)
         self.__enginesMenu.addAction(action)
         
         if self.__openSearchManager.currentEngineName() == engineName:
             action.setCheckable(True)
             action.setChecked(True)
     
     ct = self.mw.currentBrowser()
     linkedResources = ct.linkedResources("search")
     
     if len(linkedResources) > 0:
         self.__enginesMenu.addSeparator()
     
     for linkedResource in linkedResources:
         url = QUrl(linkedResource.href)
         title = linkedResource.title
         mimetype = linkedResource.type_
         
         if mimetype != "application/opensearchdescription+xml":
             continue
         if url.isEmpty():
             continue
         
         if url.isRelative():
             url = ct.url().resolved(url)
         
         if title.isEmpty():
             if ct.title().isEmpty():
                 title = url.host()
             else:
                 title = ct.title()
         
         action = self.__enginesMenu.addAction(self.trUtf8("Add '%1'").arg(title), 
                                               self.__addEngineFromUrl)
         action.setData(QVariant(url))
         action.setIcon(ct.icon())
     
     self.__enginesMenu.addSeparator()
     self.__enginesMenu.addAction(self.mw.searchEnginesAction())
     
     if not self.__recentSearches.isEmpty():
         self.__enginesMenu.addAction(self.trUtf8("Clear Recent Searches"), 
                                      self.clear)