示例#1
0
 def eventFilter(self, source: QObject, event: QEvent) -> bool:
     if event.type() != QEvent.ContextMenu or (source is not self.bookmarksTable and source is not self.notesTable) \
             or (self.bookmarksTable.currentIndex().row() < 0 and self.notesTable.currentIndex().row() < 0):
         return super().eventFilter(source, event)
     index = source.currentIndex().row()
     source.selectRow(index)
     if not self.contextMenu.exec_(event.globalPos()):
         source.setCurrentIndex(QModelIndex())
     return True
    def setEditorData(  # pylint: disable=C0103,W0613,R0201
            self, editor: QtCore.QObject, index: QtCore.QModelIndex) -> None:
        """Set editor data."""
        object_record: collection.PackageObject = index.data(role=Qt.UserRole)

        try:
            title_page = object_record.component_metadata[
                collection.Metadata.TITLE_PAGE]
        except KeyError:
            title_page = ""

        files: typing.List[str] = []

        for i in object_record:
            for instance in i.instantiations.values():
                files += [os.path.basename(f) for f in instance.files]

        for i, file in enumerate(files):
            editor.addItem(file)
            if title_page == file:
                editor.setCurrentIndex(i)