src/eric7/MicroPython/PyBoardDevices.py

branch
eric7
changeset 9752
2b9546c0cbd9
parent 9751
606ac0e26533
equal deleted inserted replaced
9751:606ac0e26533 9752:2b9546c0cbd9
9 9
10 import os 10 import os
11 11
12 from PyQt6.QtCore import QStandardPaths, QUrl, pyqtSlot 12 from PyQt6.QtCore import QStandardPaths, QUrl, pyqtSlot
13 from PyQt6.QtNetwork import QNetworkRequest 13 from PyQt6.QtNetwork import QNetworkRequest
14 from PyQt6.QtWidgets import QMenu
14 15
15 from eric7 import Globals, Preferences 16 from eric7 import Globals, Preferences
16 from eric7.EricWidgets import EricFileDialog, EricMessageBox 17 from eric7.EricWidgets import EricFileDialog, EricMessageBox
17 from eric7.EricWidgets.EricApplication import ericApp 18 from eric7.EricWidgets.EricApplication import ericApp
18 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog 19 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog
45 @type QObject 46 @type QObject
46 """ 47 """
47 super().__init__(microPythonWidget, deviceType, parent) 48 super().__init__(microPythonWidget, deviceType, parent)
48 49
49 self.__workspace = self.__findWorkspace() 50 self.__workspace = self.__findWorkspace()
51
52 self.__createPyboardMenu()
50 53
51 def setButtons(self): 54 def setButtons(self):
52 """ 55 """
53 Public method to enable the supported action buttons. 56 Public method to enable the supported action buttons.
54 """ 57 """
219 @return firmware download URL of the device 222 @return firmware download URL of the device
220 @rtype str 223 @rtype str
221 """ 224 """
222 return Preferences.getMicroPython("MicroPythonFirmwareUrl") 225 return Preferences.getMicroPython("MicroPythonFirmwareUrl")
223 226
227 def __createPyboardMenu(self):
228 """
229 Private method to create the pyboard submenu.
230 """
231 self.__pyboardMenu = QMenu(self.tr("PyBoard Functions"))
232
233 self.__showMpyAct = self.__pyboardMenu.addAction(
234 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
235 )
236 self.__pyboardMenu.addSeparator()
237 self.__bootloaderAct = self.__pyboardMenu.addAction(
238 self.tr("Activate Bootloader"), self.__activateBootloader
239 )
240 self.__dfuAct = self.__pyboardMenu.addAction(
241 self.tr("List DFU-capable Devices"), self.__listDfuCapableDevices
242 )
243 self.__pyboardMenu.addSeparator()
244 self.__flashMpyAct = self.__pyboardMenu.addAction(
245 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython
246 )
247 self.__pyboardMenu.addAction(
248 self.tr("MicroPython Flash Instructions"), self.__showFlashInstructions
249 )
250
224 def addDeviceMenuEntries(self, menu): 251 def addDeviceMenuEntries(self, menu):
225 """ 252 """
226 Public method to add device specific entries to the given menu. 253 Public method to add device specific entries to the given menu.
227 254
228 @param menu reference to the context menu 255 @param menu reference to the context menu
229 @type QMenu 256 @type QMenu
230 """ 257 """
231 connected = self.microPython.isConnected() 258 connected = self.microPython.isConnected()
232 linkConnected = self.microPython.isLinkConnected() 259 linkConnected = self.microPython.isLinkConnected()
233 260
234 menu.addAction( 261 self.__bootloaderAct.setEnabled(connected)
235 self.tr("Activate Bootloader"), self.__activateBootloader 262 self.__dfuAct.setEnabled(not linkConnected)
236 ).setEnabled(connected) 263 self.__showMpyAct.setEnabled(connected)
237 menu.addAction( 264 self.__flashMpyAct.setEnabled(not linkConnected)
238 self.tr("List DFU-capable Devices"), self.__listDfuCapableDevices 265
239 ).setEnabled(not linkConnected) 266 menu.addMenu(self.__pyboardMenu)
240 menu.addSeparator()
241 menu.addAction(
242 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
243 ).setEnabled(connected)
244 menu.addAction(
245 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython
246 ).setEnabled(not linkConnected)
247 menu.addAction(
248 self.tr("MicroPython Flash Instructions"), self.__showFlashInstructions
249 )
250 267
251 def hasFlashMenuEntry(self): 268 def hasFlashMenuEntry(self):
252 """ 269 """
253 Public method to check, if the device has its own flash menu entry. 270 Public method to check, if the device has its own flash menu entry.
254 271

eric ide

mercurial