Added the Adafruit Feather nRF52840 to the list of known NRF52 boards and changed the list of known CircuitPython boards to be more explicit with respect to Adafruit boards (i.e. VID 0x239A).
9740
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1
|
# -*- coding: utf-8 -*- |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2
|
|
11090
|
3
|
# Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
9740
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4
|
# |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7
|
Module implementing a dialog showing the available bundles and their modules. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10
|
import circup |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12
|
from PyQt6.QtCore import Qt |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13
|
from PyQt6.QtWidgets import QDialog, QTreeWidgetItem |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15
|
from .Ui_ShowBundlesDialog import Ui_ShowBundlesDialog |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18
|
class ShowBundlesDialog(QDialog, Ui_ShowBundlesDialog): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20
|
Class implementing a dialog showing the available bundles and their modules. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23
|
def __init__(self, withModules, parent=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25
|
Constructor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27
|
@param withModules flag indicating to list the modules and their version |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28
|
@type bool |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29
|
@param parent reference to the parent widget (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30
|
@type QWidget (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32
|
super().__init__(parent) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33
|
self.setupUi(self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35
|
self.header.setText( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36
|
self.tr("Available Bundles and Modules") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37
|
if withModules |
9741
|
38
|
else self.tr("Available Bundles") |
9740
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40
|
self.bundlesWidget.setColumnCount(2) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42
|
localBundles = circup.get_bundles_local_dict().values() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43
|
bundles = circup.get_bundles_list() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44
|
availableModules = circup.get_bundle_versions(bundles) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46
|
for bundle in bundles: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47
|
topItm = QTreeWidgetItem( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48
|
self.bundlesWidget, [bundle.key, bundle.current_tag] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50
|
topItm.setExpanded(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51
|
if bundle.key in localBundles: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52
|
font = topItm.font(0) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53
|
font.setUnderline(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54
|
topItm.setFont(0, font) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55
|
itm = QTreeWidgetItem(topItm, [bundle.url]) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56
|
itm.setFirstColumnSpanned(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58
|
if withModules: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59
|
modulesHeader = QTreeWidgetItem(topItm, [self.tr("Modules")]) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60
|
modulesHeader.setExpanded(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61
|
for name, mod in sorted(availableModules.items()): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62
|
if mod["bundle"] == bundle: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63
|
QTreeWidgetItem( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64
|
modulesHeader, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65
|
[name, mod.get("__version__", self.tr("unknown"))], |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68
|
self.bundlesWidget.resizeColumnToContents(0) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69
|
self.bundlesWidget.resizeColumnToContents(1) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70
|
self.bundlesWidget.sortItems(0, Qt.SortOrder.AscendingOrder) |