diff -r eae654129780 -r b7292f2691f9 src/eric7/MicroPython/MicroPythonFileManagerWidget.py --- a/src/eric7/MicroPython/MicroPythonFileManagerWidget.py Thu Jan 18 13:17:38 2024 +0100 +++ b/src/eric7/MicroPython/MicroPythonFileManagerWidget.py Fri Jan 19 09:36:51 2024 +0100 @@ -746,75 +746,73 @@ @type bool """ aw = ericApp().getObject("ViewManager").activeWindow() - if not aw: - return - - selectedItems = self.deviceFileTreeWidget.selectedItems() - if selectedItems: - filename = selectedItems[0].text(0).strip() - if filename.endswith("/"): + if aw: + selectedItems = self.deviceFileTreeWidget.selectedItems() + if selectedItems: + filename = selectedItems[0].text(0).strip() + if filename.endswith("/"): + saveAs = True + else: saveAs = True - else: - saveAs = True - filename = "" + filename = "" - if saveAs: - filename, ok = QInputDialog.getText( - self, - self.tr("Save File As"), - self.tr("Enter a new name for the file:"), - QLineEdit.EchoMode.Normal, - filename, - ) - if not ok or not filename: - return + if saveAs: + filename, ok = QInputDialog.getText( + self, + self.tr("Save File As"), + self.tr("Enter a new name for the file:"), + QLineEdit.EchoMode.Normal, + filename, + ) + if not ok or not filename: + return - if not saveAs: - # check editor and selected file names for an implicit 'save as' - editorFileName = os.path.basename( - FileSystemUtilities.plainFileName(aw.getFileName()) - ) - if editorFileName != filename: - saveAs = True + if not saveAs: + # check editor and selected file names for an implicit 'save as' + editorFileName = os.path.basename( + FileSystemUtilities.plainFileName(aw.getFileName()) + ) + if editorFileName != filename: + saveAs = True - if saveAs and self.__isFileInList(filename, self.deviceFileTreeWidget): - # ask for overwrite permission - action, resultFilename = confirmOverwrite( - filename, - self.tr("Save File As"), - self.tr("The given file exists already (Enter file name only)."), - False, - self, - ) - if action == "cancel": - return - elif action == "rename": - filename = os.path.basename(resultFilename) + if saveAs and self.__isFileInList(filename, self.deviceFileTreeWidget): + # ask for overwrite permission + action, resultFilename = confirmOverwrite( + filename, + self.tr("Save File As"), + self.tr("The given file exists already (Enter file name only)."), + False, + self, + ) + if action == "cancel": + return + elif action == "rename": + filename = os.path.basename(resultFilename) - text = aw.text() - if self.__repl.deviceSupportsLocalFileAccess(): - filename = os.path.join(self.deviceCwd.text(), filename) - os.makedirs(os.path.dirname(filename), exist_ok=True) - with open(filename, "w") as f: - f.write(text) - self.__newDeviceList() - aw.setFileName(filename) - else: - if not filename.startswith("/"): - deviceCwd = self.deviceCwd.text() - if deviceCwd: - filename = ( - deviceCwd + "/" + filename - if deviceCwd != "/" - else "/" + filename - ) - dirname = filename.rsplit("/", 1)[0] - self.__fileManager.makedirs(dirname) - self.__fileManager.putData(filename, text.encode("utf-8")) - aw.setFileName(FileSystemUtilities.deviceFileName(filename)) + text = aw.text() + if self.__repl.deviceSupportsLocalFileAccess(): + filename = os.path.join(self.deviceCwd.text(), filename) + os.makedirs(os.path.dirname(filename), exist_ok=True) + with open(filename, "w") as f: + f.write(text) + self.__newDeviceList() + aw.setFileName(filename) + else: + if not filename.startswith("/"): + deviceCwd = self.deviceCwd.text() + if deviceCwd: + filename = ( + deviceCwd + "/" + filename + if deviceCwd != "/" + else "/" + filename + ) + dirname = filename.rsplit("/", 1)[0] + self.__fileManager.makedirs(dirname) + self.__fileManager.putData(filename, text.encode("utf-8")) + aw.setFileName(FileSystemUtilities.deviceFileName(filename)) - aw.setModified(False) - aw.resetOnlineChangeTraceInfo() + aw.setModified(False) + aw.resetOnlineChangeTraceInfo() @pyqtSlot() def on_saveAsButton_clicked(self):