src/eric7/MicroPython/MicroPythonWidget.py

branch
mpy_network
changeset 10010
8a68a7a7ab88
parent 10009
61e5fe703818
child 10011
26a7d607b8f6
equal deleted inserted replaced
10009:61e5fe703818 10010:8a68a7a7ab88
296 296
297 self.__unknownPorts = [] 297 self.__unknownPorts = []
298 self.__lastPort = None 298 self.__lastPort = None
299 self.__lastDeviceType = None 299 self.__lastDeviceType = None
300 300
301 self.__lastWebreplUrl = None
302
301 self.__interface = None 303 self.__interface = None
302 self.__device = None 304 self.__device = None
303 self.__connected = False 305 self.__connected = False
304 self.__linkConnected = False 306 self.__linkConnected = False
305 self.__setConnected(False) 307 self.__setConnected(False)
426 index, "webrepl", self.DeviceInterfaceTypeRole 428 index, "webrepl", self.DeviceInterfaceTypeRole
427 ) 429 )
428 self.deviceTypeComboBox.setItemData( 430 self.deviceTypeComboBox.setItemData(
429 index, webreplUrlsDict[name]["url"], self.DeviceWebreplUrlRole 431 index, webreplUrlsDict[name]["url"], self.DeviceWebreplUrlRole
430 ) 432 )
431 if webreplUrlsDict: 433 webreplMessage = (
432 webreplMessage = self.tr( 434 self.tr(
433 "\n%n WebREPL connection(s) defined.", "", len(webreplUrlsDict) 435 "\n%n WebREPL connection(s) defined.", "", len(webreplUrlsDict)
434 ) 436 )
435 else: 437 if webreplUrlsDict
436 webreplMessage = "" 438 else ""
439 )
437 440
438 self.deviceInfoLabel.setText(supportedMessage + unknownMessage + webreplMessage) 441 self.deviceInfoLabel.setText(supportedMessage + unknownMessage + webreplMessage)
439 442
440 index = self.deviceTypeComboBox.findText( 443 index = self.deviceTypeComboBox.findText(
441 currentDevice, Qt.MatchFlag.MatchExactly 444 currentDevice, Qt.MatchFlag.MatchExactly
525 def __configureWebreplUrls(self): 528 def __configureWebreplUrls(self):
526 """ 529 """
527 Private slot to configure the list of selectable WebREPL URLs. 530 Private slot to configure the list of selectable WebREPL URLs.
528 """ 531 """
529 from .MicroPythonWebreplUrlsConfigDialog import ( 532 from .MicroPythonWebreplUrlsConfigDialog import (
530 MicroPythonWebreplUrlsConfigDialog 533 MicroPythonWebreplUrlsConfigDialog,
531 ) 534 )
532 535
533 webreplUrlsDict = Preferences.getMicroPython("WebreplUrls") 536 webreplUrlsDict = Preferences.getMicroPython("WebreplUrls")
534 dlg = MicroPythonWebreplUrlsConfigDialog(webreplUrlsDict) 537 dlg = MicroPythonWebreplUrlsConfigDialog(webreplUrlsDict)
535 if dlg.exec() == QDialog.DialogCode.Accepted: 538 if dlg.exec() == QDialog.DialogCode.Accepted:
806 """ 809 """
807 Private slot to clear the REPL pane. 810 Private slot to clear the REPL pane.
808 """ 811 """
809 self.replEdit.clear() 812 self.replEdit.clear()
810 if bool(self.__interface) and self.__interface.isConnected(): 813 if bool(self.__interface) and self.__interface.isConnected():
811 self.__interface.write(b"\r") 814 self.__interface.write(b"\r")
812 815
813 @pyqtSlot() 816 @pyqtSlot()
814 def __paste(self, mode=QClipboard.Mode.Clipboard): 817 def __paste(self, mode=QClipboard.Mode.Clipboard):
815 """ 818 """
816 Private slot to perform a paste operation. 819 Private slot to perform a paste operation.
889 elif key in (Qt.Key.Key_Return, Qt.Key.Key_Enter): 892 elif key in (Qt.Key.Key_Return, Qt.Key.Key_Enter):
890 tc = self.replEdit.textCursor() 893 tc = self.replEdit.textCursor()
891 tc.movePosition(QTextCursor.MoveOperation.EndOfLine) 894 tc.movePosition(QTextCursor.MoveOperation.EndOfLine)
892 self.replEdit.setTextCursor(tc) 895 self.replEdit.setTextCursor(tc)
893 if bool(self.__interface) and self.__interface.isConnected(): 896 if bool(self.__interface) and self.__interface.isConnected():
894 self.__interface.write(msg) 897 self.__interface.write(msg)
895 return True 898 return True
896 else: 899 else:
897 # standard event processing 900 # standard event processing
898 return super().eventFilter(obj, evt) 901 return super().eventFilter(obj, evt)
899 902
1226 automatically 1229 automatically
1227 @type bool 1230 @type bool
1228 @exception ValueError raised to indicate an unsupported interface type 1231 @exception ValueError raised to indicate an unsupported interface type
1229 """ 1232 """
1230 from .ConnectionSelectionDialog import ConnectionSelectionDialog 1233 from .ConnectionSelectionDialog import ConnectionSelectionDialog
1234 from .MicroPythonWebreplConnectionDialog import (
1235 MicroPythonWebreplConnectionDialog,
1236 )
1231 1237
1232 interfaceType = ( 1238 interfaceType = (
1233 self.deviceTypeComboBox.currentData(self.DeviceInterfaceTypeRole) 1239 self.deviceTypeComboBox.currentData(self.DeviceInterfaceTypeRole)
1234 or "serial" 1240 or "serial"
1235 ) # 'serial' is the default 1241 ) # 'serial' is the default
1261 1267
1262 self.__interface = MicroPythonSerialDeviceInterface(self) 1268 self.__interface = MicroPythonSerialDeviceInterface(self)
1263 elif interfaceType == "webrepl": 1269 elif interfaceType == "webrepl":
1264 port = self.deviceTypeComboBox.currentData(self.DeviceWebreplUrlRole) 1270 port = self.deviceTypeComboBox.currentData(self.DeviceWebreplUrlRole)
1265 if not port: 1271 if not port:
1266 # TODO: implement Webrepl parameter dialog (ws:// URL) 1272 with EricOverridenCursor():
1267 return 1273 dlg = MicroPythonWebreplConnectionDialog(
1274 self.__lastWebreplUrl, self.__lastDeviceType
1275 )
1276 if dlg.exec() == QDialog.DialogCode.Accepted:
1277 port, deviceType = dlg.getWebreplConnectionParameters()
1278
1279 self.deviceIconLabel.setPixmap(
1280 Devices.getDeviceIcon(deviceType, False)
1281 )
1282 self.__device = Devices.getDevice(deviceType, self, None, None)
1283
1284 self.__lastWebreplUrl = port
1285 self.__lastDeviceType = deviceType
1286 else:
1287 return
1268 1288
1269 self.__interface = MicroPythonWebreplDeviceInterface(self) 1289 self.__interface = MicroPythonWebreplDeviceInterface(self)
1270 1290
1271 if self.__interface.connectToDevice(port): 1291 if self.__interface.connectToDevice(port):
1272 deviceResponding = self.__interface.probeDevice() 1292 deviceResponding = self.__interface.probeDevice()

eric ide

mercurial