예제 #1
0
 def data(self, index, role):
     """
     Public method to get data from the model.
     
     @param index index to get data for (QModelIndex)
     @param role role of the data to retrieve (integer)
     @return requested data
     """
     if index.row() >= self.__manager.enginesCount() or index.row() < 0:
         return None
     
     engine = self.__manager.engine(
         self.__manager.allEnginesNames()[index.row()])
     
     if engine is None:
         return None
     
     if index.column() == 0:
         if role == Qt.DisplayRole:
             return engine.name()
             
         elif role == Qt.DecorationRole:
             image = engine.image()
             if image.isNull():
                 from Helpviewer.HelpWindow import HelpWindow
                 icon = HelpWindow.icon(QUrl(engine.imageUrl()))
             else:
                 icon = QIcon(QPixmap.fromImage(image))
             return icon
             
         elif role == Qt.ToolTipRole:
             description = self.tr("<strong>Description:</strong> {0}")\
                 .format(engine.description())
             if engine.providesSuggestions():
                 description += "<br/>"
                 description += self.tr(
                     "<strong>Provides contextual suggestions</strong>")
             
             return description
     elif index.column() == 1:
         if role in [Qt.EditRole, Qt.DisplayRole]:
             return ",".join(self.__manager.keywordsForEngine(engine))
         elif role == Qt.ToolTipRole:
             return self.tr(
                 "Comma-separated list of keywords that may"
                 " be entered in the location bar followed by search terms"
                 " to search with this engine")
     
     return None