src/eric7/Project/QuickFindFileDialog.py

branch
server
changeset 10610
bb0149571d94
parent 10439
21c28b0f9e41
child 10704
27d21e5163b8
--- a/src/eric7/Project/QuickFindFileDialog.py	Fri Feb 23 16:52:01 2024 +0100
+++ b/src/eric7/Project/QuickFindFileDialog.py	Mon Feb 26 10:41:10 2024 +0100
@@ -21,6 +21,8 @@
     QWidget,
 )
 
+from eric7.EricWidgets.EricApplication import ericApp
+
 from .Ui_QuickFindFile import Ui_QuickFindFile
 
 
@@ -61,7 +63,11 @@
         self.stopButton = self.buttonBox.addButton(
             self.tr("Stop"), QDialogButtonBox.ButtonRole.ActionRole
         )
+
         self.project = project
+        self.__remotefsInterface = (
+            ericApp().getObject("EricServer").getServiceInterface("FileSystem")
+        )
 
     def eventFilter(self, source, event):
         """
@@ -126,7 +132,11 @@
         if itm is not None:
             filePath = itm.text(1)
             fileName = itm.text(0)
-            fullPath = os.path.join(self.project.ppath, filePath, fileName)
+            fullPath = (
+                self.__remotefsInterface.join(self.project.ppath, filePath, fileName)
+                if self.__isRemote
+                else os.path.join(self.project.ppath, filePath, fileName)
+            )
 
             if fullPath.endswith(".ui"):
                 self.designerFile.emit(fullPath)
@@ -192,7 +202,14 @@
         ordered = []
         for _, in_order, name in possible:
             try:
-                age = os.stat(os.path.join(self.project.ppath, name)).st_mtime
+                age = (
+                    self.__remotefsInterface.stat(
+                        self.__remotefsInterface.join(self.project.ppath, name),
+                        ["st_mtime"],
+                    )["st_mtime"]
+                    if self.__isRemote
+                    else os.stat(os.path.join(self.project.ppath, name)).st_mtime
+                )
             except OSError:
                 # skipping, because it doesn't appear to exist...
                 continue
@@ -223,9 +240,12 @@
 
         for _in_order, _age, name in ordered:
             found = True
-            QTreeWidgetItem(
-                self.fileList, [os.path.basename(name), os.path.dirname(name)]
+            head, tail = (
+                self.__remotefsInterface.split(name)
+                if self.__isRemote
+                else os.path.split(name)
             )
+            QTreeWidgetItem(self.fileList, [tail, head])
         QApplication.processEvents()
 
         del locations
@@ -283,10 +303,15 @@
             current is not None
         )
 
-    def show(self):
+    def show(self, isRemote):
         """
-        Public method to enable/disable the project checkbox.
+        Public method to perform actions before showing the dialog.
+
+        @param isRemote flag indicating a remote project
+        @type bool
         """
+        self.__isRemote = isRemote
+
         self.fileNameEdit.selectAll()
         self.fileNameEdit.setFocus()
 

eric ide

mercurial