src/eric7/MicroPython/CircuitPythonUpdater/ShowInstalledDialog.py

Tue, 07 Feb 2023 10:53:40 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 07 Feb 2023 10:53:40 +0100
branch
eric7
changeset 9745
2c706ccc2b42
parent 9740
90072e10ae9b
permissions
-rw-r--r--

Added code to the CircuitPython interface to show the installed firmware version even if the drive is not mounted but the device is connected via the serial console.

9740
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to show the modules installed on the connected device.
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import circup
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt6.QtCore import Qt
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .Ui_ShowInstalledDialog import Ui_ShowInstalledDialog
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class ShowInstalledDialog(QDialog, Ui_ShowInstalledDialog):
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing a dialog to show the modules installed on the connected device.
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, devicePath, parent=None):
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param devicePath path to the connected board
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type str
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param parent reference to the parent widget (defaults to None)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @type QWidget (optional)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 super().__init__(parent)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.setupUi(self)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.modulesList.clear()
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 deviceModules = circup.get_device_versions(devicePath)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 for name, metadata in deviceModules.items():
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 QTreeWidgetItem(
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.modulesList,
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 [name, metadata.get("__version__", self.tr("unknown"))],
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 )
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.modulesList.sortItems(0, Qt.SortOrder.AscendingOrder)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.modulesList.resizeColumnToContents(0)
90072e10ae9b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.modulesList.resizeColumnToContents(1)

eric ide

mercurial