diff -r 6156d9675f62 -r ea35c92a3c7c src/eric7/Project/ProjectBrowserModel.py --- 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)