src/eric7/UI/Browser.py

branch
pdf_viewer
changeset 9697
cdaa3cc805f7
parent 9653
e67609152c5e
child 10069
435cc5875135
diff -r 669dabfa1319 -r cdaa3cc805f7 src/eric7/UI/Browser.py
--- 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.

eric ide

mercurial