--- a/src/eric7/UI/Browser.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/UI/Browser.py Thu Jan 12 18:08:12 2023 +0100 @@ -89,6 +89,7 @@ @signal binaryFile(filename) emitted to open a file as binary (str) @signal testFile(filename) emitted to open a Python file for a unit test (str) + @signal pdfFile(filename) emitted to open a PDF file (str) """ sourceFile = pyqtSignal((str,), (str, int), (str, list), (str, int, str)) @@ -102,6 +103,7 @@ svgFile = pyqtSignal(str) umlFile = pyqtSignal(str) binaryFile = pyqtSignal(str) + pdfFile = pyqtSignal(str) testFile = pyqtSignal(str) def __init__(self, parent=None): @@ -294,6 +296,10 @@ QCoreApplication.translate("Browser", "Open in Editor"), self._openFileInEditor, ) + self.openInPdfViewerAct = self.menu.addAction( + QCoreApplication.translate("Browser", "Open in PDF Viewer"), + self._openPdfViewer, + ) self.menu.addSeparator() self.mimeTypeAct = self.menu.addAction( QCoreApplication.translate("Browser", "Show Mime-Type"), self.__showMimeType @@ -447,11 +453,13 @@ else: self.editPixmapAct.setVisible(itm.isPixmapFile()) self.openInEditorAct.setVisible(itm.isSvgFile()) + self.openInPdfViewerAct.setVisible(itm.isPdfFile()) self.menu.popup(coord) elif isinstance( itm, (BrowserClassItem, BrowserMethodItem, BrowserImportItem) ): self.editPixmapAct.setVisible(False) + self.openInPdfViewerAct.setVisible(False) self.menu.popup(coord) elif isinstance(itm, BrowserClassAttributeItem): self.attributeMenu.popup(coord) @@ -651,6 +659,16 @@ if isinstance(itm, BrowserFileItem): self.binaryFile.emit(itm.fileName()) + def _openPdfViewer(self): + """ + Protected slot to handle the open in PDF viewer popup menu entry. + """ + itmList = self.getSelectedItems([BrowserFileItem]) + + for itm in itmList: + if isinstance(itm, BrowserFileItem): + self.pdfFile.emit(itm.fileName()) + def _openFileInEditor(self): """ Protected slot to handle the Open in Editor menu action.