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