src/eric7/MicroPython/MicroPythonFileManagerWidget.py

branch
eric7
changeset 10388
a34ce7f42e8b
parent 10236
c270c9501f1c
child 10428
a071d4065202
equal deleted inserted replaced
10387:8cf53170e290 10388:a34ce7f42e8b
25 from eric7.EricGui import EricPixmapCache 25 from eric7.EricGui import EricPixmapCache
26 from eric7.EricWidgets import EricMessageBox, EricPathPickerDialog 26 from eric7.EricWidgets import EricMessageBox, EricPathPickerDialog
27 from eric7.EricWidgets.EricApplication import ericApp 27 from eric7.EricWidgets.EricApplication import ericApp
28 from eric7.EricWidgets.EricFileSaveConfirmDialog import confirmOverwrite 28 from eric7.EricWidgets.EricFileSaveConfirmDialog import confirmOverwrite
29 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes 29 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes
30 from eric7.SystemUtilities import FileSystemUtilities
30 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog 31 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
31 32
32 from .MicroPythonFileSystemUtilities import ( 33 from .MicroPythonFileSystemUtilities import (
33 decoratedName, 34 decoratedName,
34 listdirStat, 35 listdirStat,
173 Public method to start the widget. 174 Public method to start the widget.
174 """ 175 """
175 dirname = "" 176 dirname = ""
176 vm = ericApp().getObject("ViewManager") 177 vm = ericApp().getObject("ViewManager")
177 aw = vm.activeWindow() 178 aw = vm.activeWindow()
178 if aw and aw.isLocalFile(): 179 if aw and FileSystemUtilities.isPlainFileName(aw.getFileName()):
179 dirname = os.path.dirname(aw.getFileName()) 180 dirname = os.path.dirname(aw.getFileName())
180 if not dirname: 181 if not dirname:
181 dirname = ( 182 dirname = (
182 Preferences.getMicroPython("MpyWorkspace") 183 Preferences.getMicroPython("MpyWorkspace")
183 or Preferences.getMultiProject("Workspace") 184 or Preferences.getMultiProject("Workspace")
408 else: 409 else:
409 data = self.__fileManager.getData(name) 410 data = self.__fileManager.getData(name)
410 try: 411 try:
411 text = data.decode(encoding="utf-8") 412 text = data.decode(encoding="utf-8")
412 ericApp().getObject("ViewManager").newEditorWithText( 413 ericApp().getObject("ViewManager").newEditorWithText(
413 text, fileName="device:{0}".format(name) 414 text, fileName=FileSystemUtilities.deviceFileName(name)
414 ) 415 )
415 except UnicodeDecodeError: 416 except UnicodeDecodeError:
416 EricMessageBox.warning( 417 EricMessageBox.warning(
417 self, 418 self,
418 self.tr("Open Device File"), 419 self.tr("Open Device File"),
730 name = filename 731 name = filename
731 if not name.endswith("/"): 732 if not name.endswith("/"):
732 data = self.__fileManager.getData(name) 733 data = self.__fileManager.getData(name)
733 text = data.decode(encoding="utf-8") 734 text = data.decode(encoding="utf-8")
734 ericApp().getObject("ViewManager").newEditorWithText( 735 ericApp().getObject("ViewManager").newEditorWithText(
735 text, "Python3", "device:{0}".format(name) 736 text, "Python3", FileSystemUtilities.deviceFileName(name)
736 ) 737 )
737 738
738 @pyqtSlot() 739 @pyqtSlot()
739 def on_saveButton_clicked(self, saveAs=False): 740 def on_saveButton_clicked(self, saveAs=False):
740 """ 741 """
767 if not ok or not filename: 768 if not ok or not filename:
768 return 769 return
769 770
770 if not saveAs: 771 if not saveAs:
771 # check editor and selected file names for an implicit 'save as' 772 # check editor and selected file names for an implicit 'save as'
772 editorFileName = os.path.basename(aw.getFileName().replace("device:", "")) 773 editorFileName = os.path.basename(
774 FileSystemUtilities.plainFileName(aw.getFileName())
775 )
773 if editorFileName != filename: 776 if editorFileName != filename:
774 saveAs = True 777 saveAs = True
775 778
776 if saveAs and self.__isFileInList(filename, self.deviceFileTreeWidget): 779 if saveAs and self.__isFileInList(filename, self.deviceFileTreeWidget):
777 # ask for overwrite permission 780 # ask for overwrite permission
805 else "/" + filename 808 else "/" + filename
806 ) 809 )
807 dirname = filename.rsplit("/", 1)[0] 810 dirname = filename.rsplit("/", 1)[0]
808 self.__fileManager.makedirs(dirname) 811 self.__fileManager.makedirs(dirname)
809 self.__fileManager.putData(filename, text.encode("utf-8")) 812 self.__fileManager.putData(filename, text.encode("utf-8"))
810 aw.setFileName("device:" + filename) 813 aw.setFileName(FileSystemUtilities.deviceFileName(filename))
811 814
812 aw.setModified(False) 815 aw.setModified(False)
813 aw.resetOnlineChangeTraceInfo() 816 aw.resetOnlineChangeTraceInfo()
814 817
815 @pyqtSlot() 818 @pyqtSlot()

eric ide

mercurial