src/eric7/DataViews/PyProfileDialog.py

branch
server
changeset 10574
622e59b51640
parent 10439
21c28b0f9e41
child 10597
fbe93720ee9f
--- a/src/eric7/DataViews/PyProfileDialog.py	Wed Feb 14 10:24:23 2024 +0100
+++ b/src/eric7/DataViews/PyProfileDialog.py	Thu Feb 15 13:59:02 2024 +0100
@@ -22,7 +22,8 @@
 )
 
 from eric7.EricWidgets import EricMessageBox
-from eric7.SystemUtilities import PythonUtilities
+from eric7.EricWidgets.EricApplication import ericApp
+from eric7.SystemUtilities import FileSystemUtilities, PythonUtilities
 
 from .Ui_PyProfileDialog import Ui_PyProfileDialog
 
@@ -104,6 +105,11 @@
         self.summaryList.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
         self.summaryList.customContextMenuRequested.connect(self.__showContextMenu)
 
+        # eric-ide server interface
+        self.__serverFsInterface = ericApp().getObject(
+            "EricServer"
+        ).getServiceInterface("FileSystem")
+
     def __createResultItem(
         self,
         calls,
@@ -265,7 +271,16 @@
         self.basename = os.path.splitext(pfn)[0]
 
         fname = "{0}.profile".format(self.basename)
-        if not os.path.exists(fname):
+        if (
+            (
+                FileSystemUtilities.isRemoteFileName(fname)
+                and not self.__serverFsInterface.exists(fname)
+            )
+            or (
+                FileSystemUtilities.isPlainFileName(fname)
+                and not os.path.exists(fname)
+            )
+        ):
             EricMessageBox.warning(
                 self,
                 self.tr("Profile Results"),
@@ -277,8 +292,12 @@
             self.close()
             return
         try:
-            with open(fname, "rb") as f:
-                self.stats = pickle.load(f)  # secok
+            if FileSystemUtilities.isRemoteFileName(fname):
+                data = self.__serverFsInterface.readFile(fname)
+                self.stats = pickle.loads(data)
+            else:
+                with open(fname, "rb") as f:
+                    self.stats = pickle.load(f)  # secok
         except (EOFError, OSError, pickle.PickleError):
             EricMessageBox.critical(
                 self,
@@ -291,7 +310,10 @@
             self.close()
             return
 
-        self.file = fn
+        if FileSystemUtilities.isRemoteFileName(fname):
+            self.file = FileSystemUtilities.plainFileName(fn)
+        else:
+            self.file = fn
         self.__populateLists()
         self.__finish()
 

eric ide

mercurial