eric6/MicroPython/MicroPythonWidget.py

changeset 7150
cfe71cde2eec
parent 7148
25426353d632
child 7161
728018c32b09
equal deleted inserted replaced
7149:6a9d4a241962 7150:cfe71cde2eec
845 """ 845 """
846 port = self.getCurrentPort() 846 port = self.getCurrentPort()
847 if self.__interface.connectToDevice(port): 847 if self.__interface.connectToDevice(port):
848 self.__setConnected(True) 848 self.__setConnected(True)
849 849
850 if Preferences.getMicroPython("SyncTimeAfterConnect"): 850 if (Preferences.getMicroPython("SyncTimeAfterConnect") and
851 self.__device.hasTimeCommands()):
851 self.__synchronizeTime(quiet=True) 852 self.__synchronizeTime(quiet=True)
852 else: 853 else:
853 E5MessageBox.warning( 854 E5MessageBox.warning(
854 self, 855 self,
855 self.tr("Serial Device Connect"), 856 self.tr("Serial Device Connect"),
1105 self.tr("Synchronize Time"), self.__synchronizeTime) 1106 self.tr("Synchronize Time"), self.__synchronizeTime)
1106 act.setEnabled(self.__connected) 1107 act.setEnabled(self.__connected)
1107 act = self.__superMenu.addAction( 1108 act = self.__superMenu.addAction(
1108 self.tr("Show Device Time"), self.__showDeviceTime) 1109 self.tr("Show Device Time"), self.__showDeviceTime)
1109 act.setEnabled(self.__connected) 1110 act.setEnabled(self.__connected)
1110 self.__superMenu.addAction( 1111 self.__superMenu.addAction(
1111 self.tr("Show Local Time"), self.__showLocalTime) 1112 self.tr("Show Local Time"), self.__showLocalTime)
1112 self.__superMenu.addSeparator() 1113 self.__superMenu.addSeparator()
1113 if not Globals.isWindowsPlatform(): 1114 if not Globals.isWindowsPlatform():
1114 self.__superMenu.addAction( 1115 available = self.__mpyCrossAvailable()
1116 act = self.__superMenu.addAction(
1115 self.tr("Compile Python File"), self.__compileFile2Mpy) 1117 self.tr("Compile Python File"), self.__compileFile2Mpy)
1118 act.setEnabled(available)
1116 act = self.__superMenu.addAction( 1119 act = self.__superMenu.addAction(
1117 self.tr("Compile Current Editor"), self.__compileEditor2Mpy) 1120 self.tr("Compile Current Editor"), self.__compileEditor2Mpy)
1118 aw = e5App().getObject("ViewManager").activeWindow() 1121 aw = e5App().getObject("ViewManager").activeWindow()
1119 act.setEnabled(bool(aw)) 1122 act.setEnabled(available and bool(aw))
1120 self.__superMenu.addSeparator() 1123 self.__superMenu.addSeparator()
1121 if self.__device: 1124 if self.__device:
1122 self.__device.addDeviceMenuEntries(self.__superMenu) 1125 self.__device.addDeviceMenuEntries(self.__superMenu)
1123 1126
1124 @pyqtSlot() 1127 @pyqtSlot()
1273 self.tr("Error handling device"), 1276 self.tr("Error handling device"),
1274 self.tr("<p>There was an error communicating with the connected" 1277 self.tr("<p>There was an error communicating with the connected"
1275 " device.</p><p>Method: {0}</p><p>Message: {1}</p>") 1278 " device.</p><p>Method: {0}</p><p>Message: {1}</p>")
1276 .format(method, error)) 1279 .format(method, error))
1277 1280
1281 def __mpyCrossAvailable(self):
1282 """
1283 Private method to check the availability of mpy-cross.
1284
1285 @return flag indicating the availability of mpy-cross
1286 @rtype bool
1287 """
1288 available = False
1289 program = Preferences.getMicroPython("MpyCrossCompiler")
1290 if not program:
1291 program = "mpy-cross"
1292 if Utilities.isinpath(program):
1293 available = True
1294 else:
1295 if Utilities.isExecutable(program):
1296 available = True
1297
1298 return available
1299
1278 def __crossCompile(self, pythonFile="", title=""): 1300 def __crossCompile(self, pythonFile="", title=""):
1279 """ 1301 """
1280 Private method to cross compile a Python file to a .mpy file. 1302 Private method to cross compile a Python file to a .mpy file.
1281 1303
1282 @param pythonFile name of the Python file to be compiled 1304 @param pythonFile name of the Python file to be compiled

eric ide

mercurial