8 boards. |
8 boards. |
9 """ |
9 """ |
10 |
10 |
11 from PyQt6.QtCore import QProcess, QUrl, pyqtSlot |
11 from PyQt6.QtCore import QProcess, QUrl, pyqtSlot |
12 from PyQt6.QtNetwork import QNetworkRequest |
12 from PyQt6.QtNetwork import QNetworkRequest |
13 from PyQt6.QtWidgets import QDialog |
13 from PyQt6.QtWidgets import QDialog, QMenu |
14 |
14 |
15 from eric7 import Globals, Preferences |
15 from eric7 import Globals, Preferences |
16 from eric7.EricWidgets import EricMessageBox |
16 from eric7.EricWidgets import EricMessageBox |
17 from eric7.EricWidgets.EricApplication import ericApp |
17 from eric7.EricWidgets.EricApplication import ericApp |
18 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog |
18 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog |
116 File Manager and a reason why it cannot. |
118 File Manager and a reason why it cannot. |
117 @rtype tuple of (bool, str) |
119 @rtype tuple of (bool, str) |
118 """ |
120 """ |
119 return True, "" |
121 return True, "" |
120 |
122 |
|
123 def __createEsp32Submenu(self): |
|
124 """ |
|
125 Private method to create the ESP32 submenu. |
|
126 """ |
|
127 self.__espMenu = QMenu(self.tr("ESP32 Functions")) |
|
128 |
|
129 self.__showMpyAct = self.__espMenu.addAction( |
|
130 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions |
|
131 ) |
|
132 self.__espMenu.addSeparator() |
|
133 self.__eraseFlashAct = self.__espMenu.addAction( |
|
134 self.tr("Erase Flash"), self.__eraseFlash |
|
135 ) |
|
136 self.__flashMpyAct = self.__espMenu.addAction( |
|
137 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython |
|
138 ) |
|
139 self.__espMenu.addSeparator() |
|
140 self.__flashAdditionalAct = self.__espMenu.addAction( |
|
141 self.tr("Flash Additional Firmware"), self.__flashAddons |
|
142 ) |
|
143 self.__espMenu.addSeparator() |
|
144 self.__backupAct = self.__espMenu.addAction( |
|
145 self.tr("Backup Firmware"), self.__backupFlash |
|
146 ) |
|
147 self.__restoreAct = self.__espMenu.addAction( |
|
148 self.tr("Restore Firmware"), self.__restoreFlash |
|
149 ) |
|
150 self.__espMenu.addSeparator() |
|
151 self.__chipIdAct = self.__espMenu.addAction( |
|
152 self.tr("Show Chip ID"), self.__showChipID |
|
153 ) |
|
154 self.__flashIdAct = self.__espMenu.addAction( |
|
155 self.tr("Show Flash ID"), self.__showFlashID |
|
156 ) |
|
157 self.__macAddressAct = self.__espMenu.addAction( |
|
158 self.tr("Show MAC Address"), self.__showMACAddress |
|
159 ) |
|
160 self.__espMenu.addSeparator() |
|
161 self.__resetAct = self.__espMenu.addAction( |
|
162 self.tr("Reset Device"), self.__resetDevice |
|
163 ) |
|
164 self.__espMenu.addSeparator() |
|
165 self.__espMenu.addAction(self.tr("Install 'esptool.py'"), self.__installEspTool) |
|
166 |
121 def addDeviceMenuEntries(self, menu): |
167 def addDeviceMenuEntries(self, menu): |
122 """ |
168 """ |
123 Public method to add device specific entries to the given menu. |
169 Public method to add device specific entries to the given menu. |
124 |
170 |
125 @param menu reference to the context menu |
171 @param menu reference to the context menu |
126 @type QMenu |
172 @type QMenu |
127 """ |
173 """ |
128 connected = self.microPython.isConnected() |
174 connected = self.microPython.isConnected() |
129 linkConnected = self.microPython.isLinkConnected() |
175 linkConnected = self.microPython.isLinkConnected() |
130 |
176 |
131 menu.addAction( |
177 self.__showMpyAct.setEnabled(connected) |
132 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions |
178 self.__eraseFlashAct.setEnabled(not linkConnected) |
133 ).setEnabled(connected) |
179 self.__flashMpyAct.setEnabled(not linkConnected) |
134 menu.addAction(self.tr("Erase Flash"), self.__eraseFlash).setEnabled( |
180 self.__flashAdditionalAct.setEnabled(not linkConnected) |
135 not linkConnected |
181 self.__backupAct.setEnabled(not linkConnected) |
136 ) |
182 self.__restoreAct.setEnabled(not linkConnected) |
137 menu.addAction( |
183 self.__chipIdAct.setEnabled(not linkConnected) |
138 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython |
184 self.__flashIdAct.setEnabled(not linkConnected) |
139 ).setEnabled(not linkConnected) |
185 self.__macAddressAct.setEnabled(not linkConnected) |
140 menu.addSeparator() |
186 self.__resetAct.setEnabled(connected or not linkConnected) |
141 menu.addAction( |
187 |
142 self.tr("Flash Additional Firmware"), self.__flashAddons |
188 menu.addMenu(self.__espMenu) |
143 ).setEnabled(not linkConnected) |
|
144 menu.addSeparator() |
|
145 menu.addAction(self.tr("Backup Firmware"), self.__backupFlash).setEnabled( |
|
146 not linkConnected |
|
147 ) |
|
148 menu.addAction(self.tr("Restore Firmware"), self.__restoreFlash).setEnabled( |
|
149 not linkConnected |
|
150 ) |
|
151 menu.addSeparator() |
|
152 menu.addAction(self.tr("Show Chip ID"), self.__showChipID).setEnabled( |
|
153 not linkConnected |
|
154 ) |
|
155 menu.addAction(self.tr("Show Flash ID"), self.__showFlashID).setEnabled( |
|
156 not linkConnected |
|
157 ) |
|
158 menu.addAction(self.tr("Show MAC Address"), self.__showMACAddress).setEnabled( |
|
159 not linkConnected |
|
160 ) |
|
161 menu.addSeparator() |
|
162 menu.addAction(self.tr("Reset Device"), self.__resetDevice).setEnabled( |
|
163 connected or not linkConnected |
|
164 ) |
|
165 menu.addSeparator() |
|
166 menu.addAction(self.tr("Install 'esptool.py'"), self.__installEspTool) |
|
167 |
189 |
168 def hasFlashMenuEntry(self): |
190 def hasFlashMenuEntry(self): |
169 """ |
191 """ |
170 Public method to check, if the device has its own flash menu entry. |
192 Public method to check, if the device has its own flash menu entry. |
171 |
193 |