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 |
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 |