eric6/MicroPython/MicroPythonWidget.py

changeset 8067
a467ab075be0
parent 8061
979562f350bf
child 8071
408756e389d0
diff -r 1208cdae96b6 -r a467ab075be0 eric6/MicroPython/MicroPythonWidget.py
--- a/eric6/MicroPython/MicroPythonWidget.py	Thu Feb 04 14:35:50 2021 +0100
+++ b/eric6/MicroPython/MicroPythonWidget.py	Thu Feb 04 14:38:01 2021 +0100
@@ -1000,14 +1000,15 @@
             self.__showNoDeviceMessage()
             return
         
-        workspace = self.__device.getWorkspace()
-        fileName = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Open Python File"),
-            workspace,
-            self.tr("Python3 Files (*.py);;All Files (*)"))
-        if fileName:
-            e5App().getObject("ViewManager").openSourceFile(fileName)
+        workspace = self.getDeviceWorkspace()
+        if workspace:
+            fileName = E5FileDialog.getOpenFileName(
+                self,
+                self.tr("Open Python File"),
+                workspace,
+                self.tr("Python3 Files (*.py);;All Files (*)"))
+            if fileName:
+                e5App().getObject("ViewManager").openSourceFile(fileName)
     
     @pyqtSlot()
     def on_saveButton_clicked(self):
@@ -1018,10 +1019,11 @@
             self.__showNoDeviceMessage()
             return
         
-        workspace = self.__device.getWorkspace()
         aw = e5App().getObject("ViewManager").activeWindow()
         if aw:
-            aw.saveFileAs(workspace)
+            workspace = self.getDeviceWorkspace()
+            if workspace:
+                aw.saveFileAs(workspace)
     
     @pyqtSlot(bool)
     def on_chartButton_clicked(self, checked):
@@ -1132,21 +1134,26 @@
                             """<p>Reason: {0}</p>""").format(reason))
                 return
             
-            if not self.__interface.isConnected():
-                self.__connectToDevice()
-            self.__fileManagerWidget = MicroPythonFileManagerWidget(
-                self.__interface, self.__device.supportsLocalFileAccess(),
-                self)
-            
-            self.__ui.addSideWidget(self.__ui.BottomSide,
-                                    self.__fileManagerWidget,
-                                    UI.PixmapCache.getIcon("filemanager"),
-                                    self.tr("µPy Files"))
-            self.__ui.showSideWidget(self.__fileManagerWidget)
+            with E5OverrideCursor():
+                if not self.__interface.isConnected():
+                    self.__connectToDevice()
+                if self.__connected:
+                    self.__fileManagerWidget = MicroPythonFileManagerWidget(
+                        self.__interface,
+                        self.__device.supportsLocalFileAccess(),
+                        self)
+                    
+                    self.__ui.addSideWidget(
+                        self.__ui.BottomSide,
+                        self.__fileManagerWidget,
+                        UI.PixmapCache.getIcon("filemanager"),
+                        self.tr("µPy Files")
+                    )
+                    self.__ui.showSideWidget(self.__fileManagerWidget)
 
-            self.__device.setFileManager(True)
-            
-            self.__fileManagerWidget.start()
+                    self.__device.setFileManager(True)
+                    
+                    self.__fileManagerWidget.start()
         else:
             self.__fileManagerWidget.stop()
             
@@ -1497,7 +1504,11 @@
                 if fn:
                     defaultDirectory = os.path.dirname(fn)
             if not defaultDirectory:
-                defaultDirectory = Preferences.getMultiProject("Workspace")
+                defaultDirectory = (
+                    Preferences.getMicroPython("MpyWorkspace") or
+                    Preferences.getMultiProject("Workspace") or
+                    os.path.expanduser("~")
+                )
             pythonFile = E5FileDialog.getOpenFileName(
                 self,
                 title,

eric ide

mercurial