diff -r 606ac0e26533 -r 2b9546c0cbd9 src/eric7/MicroPython/PyBoardDevices.py --- a/src/eric7/MicroPython/PyBoardDevices.py Sat Feb 11 16:59:50 2023 +0100 +++ b/src/eric7/MicroPython/PyBoardDevices.py Sat Feb 11 19:52:53 2023 +0100 @@ -11,6 +11,7 @@ from PyQt6.QtCore import QStandardPaths, QUrl, pyqtSlot from PyQt6.QtNetwork import QNetworkRequest +from PyQt6.QtWidgets import QMenu from eric7 import Globals, Preferences from eric7.EricWidgets import EricFileDialog, EricMessageBox @@ -48,6 +49,8 @@ self.__workspace = self.__findWorkspace() + self.__createPyboardMenu() + def setButtons(self): """ Public method to enable the supported action buttons. @@ -221,6 +224,30 @@ """ return Preferences.getMicroPython("MicroPythonFirmwareUrl") + def __createPyboardMenu(self): + """ + Private method to create the pyboard submenu. + """ + self.__pyboardMenu = QMenu(self.tr("PyBoard Functions")) + + self.__showMpyAct = self.__pyboardMenu.addAction( + self.tr("Show MicroPython Versions"), self.__showFirmwareVersions + ) + self.__pyboardMenu.addSeparator() + self.__bootloaderAct = self.__pyboardMenu.addAction( + self.tr("Activate Bootloader"), self.__activateBootloader + ) + self.__dfuAct = self.__pyboardMenu.addAction( + self.tr("List DFU-capable Devices"), self.__listDfuCapableDevices + ) + self.__pyboardMenu.addSeparator() + self.__flashMpyAct = self.__pyboardMenu.addAction( + self.tr("Flash MicroPython Firmware"), self.__flashMicroPython + ) + self.__pyboardMenu.addAction( + self.tr("MicroPython Flash Instructions"), self.__showFlashInstructions + ) + def addDeviceMenuEntries(self, menu): """ Public method to add device specific entries to the given menu. @@ -231,22 +258,12 @@ connected = self.microPython.isConnected() linkConnected = self.microPython.isLinkConnected() - menu.addAction( - self.tr("Activate Bootloader"), self.__activateBootloader - ).setEnabled(connected) - menu.addAction( - self.tr("List DFU-capable Devices"), self.__listDfuCapableDevices - ).setEnabled(not linkConnected) - menu.addSeparator() - menu.addAction( - self.tr("Show MicroPython Versions"), self.__showFirmwareVersions - ).setEnabled(connected) - menu.addAction( - self.tr("Flash MicroPython Firmware"), self.__flashMicroPython - ).setEnabled(not linkConnected) - menu.addAction( - self.tr("MicroPython Flash Instructions"), self.__showFlashInstructions - ) + self.__bootloaderAct.setEnabled(connected) + self.__dfuAct.setEnabled(not linkConnected) + self.__showMpyAct.setEnabled(connected) + self.__flashMpyAct.setEnabled(not linkConnected) + + menu.addMenu(self.__pyboardMenu) def hasFlashMenuEntry(self): """