--- a/src/eric7/MicroPython/CircuitPythonDevices.py Sat Feb 11 16:59:50 2023 +0100 +++ b/src/eric7/MicroPython/CircuitPythonDevices.py Sat Feb 11 19:52:53 2023 +0100 @@ -58,6 +58,8 @@ "teensy": self.__flashTeensy, } + self.__createCPyMenu() + def setButtons(self): """ Public method to enable the supported action buttons. @@ -240,6 +242,27 @@ self.__workspace = self.__findWorkspace(silent=silent) return self.__workspace + def __createCPyMenu(self): + """ + Private method to create the CircuitPython submenu. + """ + self.__libraryMenu = QMenu(self.tr("Library Management")) + self.__libraryMenu.aboutToShow.connect(self.__aboutToShowLibraryMenu) + self.__libraryMenu.setTearOffEnabled(True) + + self.__cpyMenu = QMenu(self.tr("CircuitPython Functions")) + + self.__cpyMenu.addAction( + self.tr("Show CircuitPython Versions"), self.__showCircuitPythonVersions + ) + self.__cpyMenu.addSeparator() + self.__flashCpyAct = self.__cpyMenu.addAction( + self.tr("Flash CircuitPython Firmware"), self.__flashCircuitPython + ) + self.__cpyMenu.addSeparator() + self.__cpyMenu.addMenu(self.__libraryMenu) + + def addDeviceMenuEntries(self, menu): """ Public method to add device specific entries to the given menu. @@ -249,19 +272,9 @@ """ linkConnected = self.microPython.isLinkConnected() - self.__libraryMenu = QMenu(self.tr("Library Management")) - self.__libraryMenu.aboutToShow.connect(self.__aboutToShowLibraryMenu) - self.__libraryMenu.setTearOffEnabled(True) + self.__flashCpyAct.setEnabled(not linkConnected) - menu.addAction( - self.tr("Show CircuitPython Versions"), self.__showCircuitPythonVersions - ) - act = menu.addAction( - self.tr("Flash CircuitPython Firmware"), self.__flashCircuitPython - ) - act.setEnabled(not linkConnected) - menu.addSeparator() - menu.addMenu(self.__libraryMenu) + menu.addMenu(self.__cpyMenu) @pyqtSlot() def __aboutToShowLibraryMenu(self):