--- a/src/eric7/RemoteServerInterface/EricServerFileDialog.py Mon Feb 19 15:33:33 2024 +0100 +++ b/src/eric7/RemoteServerInterface/EricServerFileDialog.py Mon Feb 19 15:34:15 2024 +0100 @@ -172,6 +172,9 @@ QAbstractItemView.SelectionMode.SingleSelection ) + if mode == FileMode.Directory: + self.setNameFilters([self.tr("Directories")]) + self.__updateOkButton() def setNameFilters(self, filters): @@ -182,12 +185,15 @@ ("filter_name (pattern1 ... patternN)") @type list of str """ - self.__filters = [ - f.split(" (", 1)[1].split(")", 1)[0].split() for f in filters - ] + self.__filters = [] + for f in filters: + if " (" in f and ")" in f: + self.__filters.append(f.split(" (", 1)[1].split(")", 1)[0].split()) + elif f: + self.__filters.append(f) self.filterCombo.clear() - self.filterCombo.addItems(filters) + self.filterCombo.addItems([f for f in filters if f]) def setNameFilter(self, filter): # noqa: M132 """ @@ -331,7 +337,6 @@ """ if ( item.data(0, EricServerFileDialog.IsDirectoryRole) - and self.__fileMode != FileMode.Directory ): self.setDirectory(self.__getFullPath(item.text(0))) else: @@ -426,7 +431,10 @@ or self.__selectedDirectory is not None ): self.okButton.setIcon(EricPixmapCache.getIcon("dialog-ok")) - self.okButton.setText(self.tr("Open")) + if self.__fileMode != FileMode.Directory: + self.okButton.setText(self.tr("Open")) + else: + self.okButton.setText(self.tr("Choose")) else: self.okButton.setIcon(EricPixmapCache.getIcon("fileSave")) self.okButton.setText(self.tr("Save")) @@ -446,9 +454,7 @@ all(n in self.__filenameCache for n in names) ) elif self.__fileMode == FileMode.Directory: - self.okButton.setEnabled( - self.nameEdit.text() in self.__directoryCache - ) + self.okButton.setEnabled(True) else: self.okButton.setEnabled(False) @@ -533,7 +539,10 @@ itm.setTextAlignment(2, Qt.AlignmentFlag.AlignHCenter) itm.setData(0, EricServerFileDialog.IsDirectoryRole, dirEntry["is_dir"]) - filters = self.__filters[self.filterCombo.currentIndex()] + currentFilterIndex = self.filterCombo.currentIndex() + filters = ( + [] if currentFilterIndex == -1 else self.__filters[currentFilterIndex] + ) self.__filterList(filters) # 3. add the directory to the history @@ -690,7 +699,10 @@ @return selected files or current viewport path @rtype str """ - return [self.__getFullPath(n) for n in self.__getNames()] + if self.__fileMode == FileMode.Directory and not self.nameEdit.text(): + return [self.treeCombo.currentText()] + else: + return [self.__getFullPath(n) for n in self.__getNames()] def selectedNameFilter(self): """