src/eric7/Project/ProjectBrowserModel.py

branch
server
changeset 10596
ea35c92a3c7c
parent 10517
aecd5a8c958c
child 10597
fbe93720ee9f
--- a/src/eric7/Project/ProjectBrowserModel.py	Mon Feb 19 19:37:00 2024 +0100
+++ b/src/eric7/Project/ProjectBrowserModel.py	Thu Feb 22 16:26:46 2024 +0100
@@ -138,7 +138,7 @@
     Class implementing the data structure for project browser directory items.
     """
 
-    def __init__(self, parent, dinfo, projectType, full=True, bold=False):
+    def __init__(self, parent, dinfo, projectType, full=True, bold=False, fsInterface=None):
         """
         Constructor
 
@@ -152,8 +152,11 @@
         @type bool
         @param bold flag indicating a highlighted font
         @type bool
+        @param fsInterface reference to the 'eric-ide' server file system interface
+            (defaults to None)
+        @type EricServerFileSystemInterface (optional)
         """
-        BrowserDirectoryItem.__init__(self, parent, dinfo, full)
+        BrowserDirectoryItem.__init__(self, parent, dinfo, full, fsInterface)
         ProjectBrowserItemMixin.__init__(self, projectType, bold)
 
         self.type_ = BrowserItemType.PbDirectory
@@ -165,7 +168,7 @@
     """
 
     def __init__(
-        self, parent, finfo, projectType, full=True, bold=False, sourceLanguage=""
+        self, parent, finfo, projectType, full=True, bold=False, sourceLanguage="", fsInterface=None
     ):
         """
         Constructor
@@ -182,8 +185,11 @@
         @type bool
         @param sourceLanguage source code language of the project
         @type str
+        @param fsInterface reference to the 'eric-ide' server file system interface
+            (defaults to None)
+        @type EricServerFileSystemInterface (optional)
         """
-        BrowserFileItem.__init__(self, parent, finfo, full, sourceLanguage)
+        BrowserFileItem.__init__(self, parent, finfo, full, sourceLanguage, fsInterface)
         ProjectBrowserItemMixin.__init__(self, projectType, bold)
 
         self.type_ = BrowserItemType.PbFile
@@ -198,12 +204,15 @@
 
     vcsStateChanged = pyqtSignal(str)
 
-    def __init__(self, parent):
+    def __init__(self, parent, fsInterface=None):
         """
         Constructor
 
         @param parent reference to parent object
         @type Project.Project
+        @param fsInterface reference to the 'eric-ide' server interface object
+            (defaults to None)
+        @type EricServerFileSystemInterface (optional)
         """
         super().__init__(parent, nopopulate=True)
 
@@ -215,6 +224,8 @@
         self.project = parent
         self.__projectBrowser = None
 
+        self.__remotefsInterface = fsInterface
+
         self.watchedItems = {}
         self.__watcherActive = True
         self.watcher = QFileSystemWatcher(self)
@@ -418,7 +429,16 @@
             )
 
             for fn in self.project.getProjectData(dataKey=fileCategory):
-                fname = os.path.join(self.project.ppath, fn)
+                fname = (
+                    self.__remotefsInterface.join(self.project.ppath, fn)
+                    if FileSystemUtilities.isRemoteFileName(self.project.ppath)
+                    else os.path.join(self.project.ppath, fn)
+                )
+                isdir = (
+                    self.__remotefsInterface.isdir(fname)
+                    if FileSystemUtilities.isRemoteFileName(fname)
+                    else os.path.isdir(fname)
+                )
                 parentItem, dt = self.findParentItemByName(
                     self.__projectBrowser.getProjectBrowserFilter(fileCategory), fn
                 )
@@ -429,8 +449,9 @@
                         self.__projectBrowser.getProjectBrowserFilter(fileCategory),
                         False,
                         bold,
+                        fsInterface=self.__remotefsInterface,
                     )
-                    if os.path.isdir(fname)
+                    if isdir
                     else ProjectBrowserFileItem(
                         parentItem,
                         fname,
@@ -438,6 +459,7 @@
                         False,
                         bold,
                         sourceLanguage=sourceLanguage,
+                        fsInterface=self.__remotefsInterface,
                     )
                 )
                 self._addItem(itm, parentItem)

eric ide

mercurial