src/eric7/UI/Browser.py

branch
eric7
changeset 10396
2f72e9330af2
parent 10383
817fd2f82d7d
child 10397
f60464a5f7ea
diff -r 16933878e27b -r 2f72e9330af2 src/eric7/UI/Browser.py
--- a/src/eric7/UI/Browser.py	Thu Dec 07 10:40:51 2023 +0100
+++ b/src/eric7/UI/Browser.py	Sun Dec 10 17:06:00 2023 +0100
@@ -250,6 +250,10 @@
         self.sourceMenu.addAction(
             QCoreApplication.translate("Browser", "Open"), self._openItem
         )
+        self.sourceMenu.addAction(
+            QCoreApplication.translate("Browser", "Show in File Manager"),
+            self._showInFileManager,
+        )
         self.testingAct = self.sourceMenu.addAction(
             QCoreApplication.translate("Browser", "Run Test..."), self.handleTesting
         )
@@ -296,6 +300,10 @@
             QCoreApplication.translate("Browser", "Open in PDF Viewer"),
             self._openPdfViewer,
         )
+        self.menu.addAction(
+            QCoreApplication.translate("Browser", "Show in File Manager"),
+            self._showInFileManager,
+        )
         self.menu.addSeparator()
         self.mimeTypeAct = self.menu.addAction(
             QCoreApplication.translate("Browser", "Show Mime-Type"), self.__showMimeType
@@ -341,6 +349,11 @@
         )
         self.dirMenu.addSeparator()
         self.dirMenu.addAction(
+            QCoreApplication.translate("Browser", "Show in File Manager"),
+            self._showInFileManager,
+        )
+        self.dirMenu.addSeparator()
+        self.dirMenu.addAction(
             QCoreApplication.translate("Browser", "Refresh directory"),
             self.__refreshDirectory,
         )
@@ -570,6 +583,26 @@
                     self.sourceFile[str, list].emit(itm.fileName(), itm.linenos())
             self._activating = False
 
+    def _showInFileManager(self):
+        """
+        Protected method to show the selected items path in a file manager application.
+        """
+        itmList = self.getSelectedItems(
+            [
+                BrowserFileItem,
+                BrowserClassItem,
+                BrowserMethodItem,
+                BrowserClassAttributeItem,
+                BrowserImportItem,
+                BrowserDirectoryItem,
+            ]
+        )
+        for itm in itmList:
+            if isinstance(itm, BrowserDirectoryItem):
+                QDesktopServices.openUrl(QUrl(itm.dirName()))
+            else:
+                QDesktopServices.openUrl(QUrl(os.path.dirname(itm.fileName())))
+
     def __showMimeType(self):
         """
         Private slot to show the mime type of the selected entry.

eric ide

mercurial