src/eric7/MicroPython/EspDevices.py

branch
eric7
changeset 9752
2b9546c0cbd9
parent 9751
606ac0e26533
--- a/src/eric7/MicroPython/EspDevices.py	Sat Feb 11 16:59:50 2023 +0100
+++ b/src/eric7/MicroPython/EspDevices.py	Sat Feb 11 19:52:53 2023 +0100
@@ -10,7 +10,7 @@
 
 from PyQt6.QtCore import QProcess, QUrl, pyqtSlot
 from PyQt6.QtNetwork import QNetworkRequest
-from PyQt6.QtWidgets import QDialog
+from PyQt6.QtWidgets import QDialog, QMenu
 
 from eric7 import Globals, Preferences
 from eric7.EricWidgets import EricMessageBox
@@ -40,6 +40,8 @@
         """
         super().__init__(microPythonWidget, deviceType, parent)
 
+        self.__createEsp32Submenu()
+
     def setButtons(self):
         """
         Public method to enable the supported action buttons.
@@ -118,6 +120,50 @@
         """
         return True, ""
 
+    def __createEsp32Submenu(self):
+        """
+        Private method to create the ESP32 submenu.
+        """
+        self.__espMenu = QMenu(self.tr("ESP32 Functions"))
+
+        self.__showMpyAct = self.__espMenu.addAction(
+            self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
+        )
+        self.__espMenu.addSeparator()
+        self.__eraseFlashAct = self.__espMenu.addAction(
+            self.tr("Erase Flash"), self.__eraseFlash
+        )
+        self.__flashMpyAct = self.__espMenu.addAction(
+            self.tr("Flash MicroPython Firmware"), self.__flashMicroPython
+        )
+        self.__espMenu.addSeparator()
+        self.__flashAdditionalAct = self.__espMenu.addAction(
+            self.tr("Flash Additional Firmware"), self.__flashAddons
+        )
+        self.__espMenu.addSeparator()
+        self.__backupAct = self.__espMenu.addAction(
+            self.tr("Backup Firmware"), self.__backupFlash
+        )
+        self.__restoreAct = self.__espMenu.addAction(
+            self.tr("Restore Firmware"), self.__restoreFlash
+        )
+        self.__espMenu.addSeparator()
+        self.__chipIdAct = self.__espMenu.addAction(
+            self.tr("Show Chip ID"), self.__showChipID
+        )
+        self.__flashIdAct = self.__espMenu.addAction(
+            self.tr("Show Flash ID"), self.__showFlashID
+        )
+        self.__macAddressAct = self.__espMenu.addAction(
+            self.tr("Show MAC Address"), self.__showMACAddress
+        )
+        self.__espMenu.addSeparator()
+        self.__resetAct = self.__espMenu.addAction(
+            self.tr("Reset Device"), self.__resetDevice
+        )
+        self.__espMenu.addSeparator()
+        self.__espMenu.addAction(self.tr("Install 'esptool.py'"), self.__installEspTool)
+
     def addDeviceMenuEntries(self, menu):
         """
         Public method to add device specific entries to the given menu.
@@ -128,42 +174,18 @@
         connected = self.microPython.isConnected()
         linkConnected = self.microPython.isLinkConnected()
 
-        menu.addAction(
-            self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
-        ).setEnabled(connected)
-        menu.addAction(self.tr("Erase Flash"), self.__eraseFlash).setEnabled(
-            not linkConnected
-        )
-        menu.addAction(
-            self.tr("Flash MicroPython Firmware"), self.__flashMicroPython
-        ).setEnabled(not linkConnected)
-        menu.addSeparator()
-        menu.addAction(
-            self.tr("Flash Additional Firmware"), self.__flashAddons
-        ).setEnabled(not linkConnected)
-        menu.addSeparator()
-        menu.addAction(self.tr("Backup Firmware"), self.__backupFlash).setEnabled(
-            not linkConnected
-        )
-        menu.addAction(self.tr("Restore Firmware"), self.__restoreFlash).setEnabled(
-            not linkConnected
-        )
-        menu.addSeparator()
-        menu.addAction(self.tr("Show Chip ID"), self.__showChipID).setEnabled(
-            not linkConnected
-        )
-        menu.addAction(self.tr("Show Flash ID"), self.__showFlashID).setEnabled(
-            not linkConnected
-        )
-        menu.addAction(self.tr("Show MAC Address"), self.__showMACAddress).setEnabled(
-            not linkConnected
-        )
-        menu.addSeparator()
-        menu.addAction(self.tr("Reset Device"), self.__resetDevice).setEnabled(
-            connected or not linkConnected
-        )
-        menu.addSeparator()
-        menu.addAction(self.tr("Install 'esptool.py'"), self.__installEspTool)
+        self.__showMpyAct.setEnabled(connected)
+        self.__eraseFlashAct.setEnabled(not linkConnected)
+        self.__flashMpyAct.setEnabled(not linkConnected)
+        self.__flashAdditionalAct.setEnabled(not linkConnected)
+        self.__backupAct.setEnabled(not linkConnected)
+        self.__restoreAct.setEnabled(not linkConnected)
+        self.__chipIdAct.setEnabled(not linkConnected)
+        self.__flashIdAct.setEnabled(not linkConnected)
+        self.__macAddressAct.setEnabled(not linkConnected)
+        self.__resetAct.setEnabled(connected or not linkConnected)
+
+        menu.addMenu(self.__espMenu)
 
     def hasFlashMenuEntry(self):
         """

eric ide

mercurial