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)