Skip to content

Commit 9b2a7bd

Browse files
committed
ref: migrate from loading .ui files to pyuic6-pregenerated Python files
1 parent aa5a920 commit 9b2a7bd

113 files changed

Lines changed: 6643 additions & 2077 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
2.26.4
1+
2.27.0
22
- setup: bump dclab to 0.71.7 (ValueError when encountering empty pipeline)
33
- ci: bump build pipeline to Python 3.13
4+
- ref: migrate from loading .ui files to pyuic6-pregenerated Python files
45
2.26.3
56
- enh: fetch QuickView image and trace data in `EventGetterThread`
67
- enh: busy indicator in QuickView when event data is fetched in the background

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ include LICENSE
33
include README.rst
44
recursive-include examples *.py
55
recursive-include tests *.py
6-
recursive-include dcscope *.css *.png *.py *.svg *.theme *.ui COPYING* LICENSE README
6+
recursive-include dcscope *.css *.png *.py *.svg *.theme COPYING* LICENSE README

dcscope/gui/analysis/ana_basins.py

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import importlib.resources
21
import json
32

43
from pygments import highlight, lexers, formatters
5-
from PyQt6 import uic, QtCore, QtWidgets
4+
from PyQt6 import QtCore, QtWidgets
5+
6+
from .ana_basins_ui import Ui_Form
67

78

89
class BasinsPanel(QtWidgets.QWidget):
@@ -17,18 +18,18 @@ class BasinsPanel(QtWidgets.QWidget):
1718

1819
def __init__(self, *args, **kwargs):
1920
super(BasinsPanel, self).__init__(*args, **kwargs)
20-
ref = importlib.resources.files(
21-
"dcscope.gui.analysis") / "ana_basins.ui"
22-
with importlib.resources.as_file(ref) as path_ui:
23-
uic.loadUi(path_ui, self)
21+
22+
self.ui = Ui_Form()
23+
self.ui.setupUi(self)
24+
2425
# current DCscope pipeline
2526
self.pipeline = None
2627
self.data_role = QtCore.Qt.ItemDataRole.UserRole + 2
27-
self.treeWidget_basin_name.setColumnCount(1)
28+
self.ui.treeWidget_basin_name.setColumnCount(1)
2829

29-
self.listWidget_dataset.currentRowChanged.connect(
30+
self.ui.listWidget_dataset.currentRowChanged.connect(
3031
self.on_select_dataset)
31-
self.treeWidget_basin_name.currentItemChanged.connect(
32+
self.ui.treeWidget_basin_name.currentItemChanged.connect(
3233
self.on_select_basin)
3334

3435
self.pp_mod_recv.connect(self.on_pp_mod_recv)
@@ -50,16 +51,16 @@ def on_pp_mod_recv(self, data):
5051
@QtCore.pyqtSlot(int)
5152
def on_select_dataset(self, ds_idx):
5253
"""Show the tables of the dataset in the right-hand list widget"""
53-
self.treeWidget_basin_name.clear()
54+
self.ui.treeWidget_basin_name.clear()
5455
if ds_idx >= 0:
5556
ds = self.pipeline.slots[ds_idx].get_dataset()
56-
self.add_basin_nodes(parent_widget=self.treeWidget_basin_name,
57+
self.add_basin_nodes(parent_widget=self.ui.treeWidget_basin_name,
5758
ds=ds)
5859

5960
@QtCore.pyqtSlot(QtWidgets.QTreeWidgetItem, QtWidgets.QTreeWidgetItem)
6061
def on_select_basin(self, current, previous=None):
6162
"""Show the tables of the dataset in the right-hand list widget"""
62-
ds_idx = self.listWidget_dataset.currentRow()
63+
ds_idx = self.ui.listWidget_dataset.currentRow()
6364
if current is not None and ds_idx >= 0:
6465
# Get the correct basin
6566
ds, bd = current.data(0, self.data_role)
@@ -76,9 +77,9 @@ def on_select_basin(self, current, previous=None):
7677
bn = None
7778

7879
# Display the basin information
79-
self.label_status.setText(f"{loaded=}, {available=}")
80-
self.label_id.setText(f"{bd.get('name')} ({bd['key']})")
81-
self.textEdit_def.setText(
80+
self.ui.label_status.setText(f"{loaded=}, {available=}")
81+
self.ui.label_id.setText(f"{bd.get('name')} ({bd['key']})")
82+
self.ui.textEdit_def.setText(
8283
highlight(json.dumps(bd, sort_keys=True, indent=2),
8384
lexers.JsonLexer(),
8485
formatters.HtmlFormatter(full=True,
@@ -92,9 +93,9 @@ def on_select_basin(self, current, previous=None):
9293
ds=bn.ds)
9394
current.setExpanded(True)
9495
else:
95-
self.textEdit_def.clear()
96-
self.label_status.setText("")
97-
self.label_id.setText("")
96+
self.ui.textEdit_def.clear()
97+
self.ui.label_status.setText("")
98+
self.ui.label_id.setText("")
9899

99100
def set_pipeline(self, pipeline):
100101
if self.pipeline is not None:
@@ -105,16 +106,16 @@ def update_content(self, slot_index=None, **kwargs):
105106
if self.pipeline and self.pipeline.slots:
106107
self.setEnabled(True)
107108
self.setUpdatesEnabled(False)
108-
self.listWidget_dataset.clear()
109-
self.treeWidget_basin_name.clear()
109+
self.ui.listWidget_dataset.clear()
110+
self.ui.treeWidget_basin_name.clear()
110111
for name in self.pipeline.deduce_display_names():
111-
self.listWidget_dataset.addItem(name)
112+
self.ui.listWidget_dataset.addItem(name)
112113
self.setUpdatesEnabled(True)
113114
if slot_index is None or slot_index < 0:
114-
slot_index = max(0, self.listWidget_dataset.currentRow())
115+
slot_index = max(0, self.ui.listWidget_dataset.currentRow())
115116
slot_index = min(slot_index, self.pipeline.num_slots - 1)
116-
self.listWidget_dataset.setCurrentRow(slot_index)
117+
self.ui.listWidget_dataset.setCurrentRow(slot_index)
117118
else:
118119
self.setEnabled(False)
119-
self.listWidget_dataset.clear()
120-
self.treeWidget_basin_name.clear()
120+
self.ui.listWidget_dataset.clear()
121+
self.ui.treeWidget_basin_name.clear()
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# flake8: noqa
2+
# This file was auto-generated with DCscope/ui/run_uic.sh.
3+
# Form implementation generated from reading ui file './analysis/ana_basins.ui'
4+
#
5+
# Created by: PyQt6 UI code generator 6.11.0
6+
#
7+
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
8+
# run again. Do not edit this file unless you know what you are doing.
9+
10+
11+
from PyQt6 import QtCore, QtGui, QtWidgets
12+
13+
14+
class Ui_Form(object):
15+
def setupUi(self, Form):
16+
Form.setObjectName("Form")
17+
Form.resize(701, 538)
18+
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
19+
self.verticalLayout.setObjectName("verticalLayout")
20+
self.horizontalLayout = QtWidgets.QHBoxLayout()
21+
self.horizontalLayout.setObjectName("horizontalLayout")
22+
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
23+
self.verticalLayout_2.setObjectName("verticalLayout_2")
24+
self.label = QtWidgets.QLabel(parent=Form)
25+
self.label.setObjectName("label")
26+
self.verticalLayout_2.addWidget(self.label)
27+
self.listWidget_dataset = QtWidgets.QListWidget(parent=Form)
28+
self.listWidget_dataset.setMinimumSize(QtCore.QSize(200, 0))
29+
self.listWidget_dataset.setProperty("showDropIndicator", False)
30+
self.listWidget_dataset.setAlternatingRowColors(True)
31+
self.listWidget_dataset.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows)
32+
self.listWidget_dataset.setObjectName("listWidget_dataset")
33+
self.verticalLayout_2.addWidget(self.listWidget_dataset)
34+
self.horizontalLayout.addLayout(self.verticalLayout_2)
35+
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
36+
self.verticalLayout_3.setObjectName("verticalLayout_3")
37+
self.label_2 = QtWidgets.QLabel(parent=Form)
38+
self.label_2.setObjectName("label_2")
39+
self.verticalLayout_3.addWidget(self.label_2)
40+
self.treeWidget_basin_name = QtWidgets.QTreeWidget(parent=Form)
41+
self.treeWidget_basin_name.setProperty("showDropIndicator", False)
42+
self.treeWidget_basin_name.setAlternatingRowColors(True)
43+
self.treeWidget_basin_name.setAutoExpandDelay(0)
44+
self.treeWidget_basin_name.setUniformRowHeights(True)
45+
self.treeWidget_basin_name.setHeaderHidden(True)
46+
self.treeWidget_basin_name.setObjectName("treeWidget_basin_name")
47+
self.treeWidget_basin_name.headerItem().setText(0, "1")
48+
self.verticalLayout_3.addWidget(self.treeWidget_basin_name)
49+
self.horizontalLayout.addLayout(self.verticalLayout_3)
50+
self.horizontalLayout.setStretch(1, 1)
51+
self.verticalLayout.addLayout(self.horizontalLayout)
52+
self.line = QtWidgets.QFrame(parent=Form)
53+
self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
54+
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
55+
self.line.setObjectName("line")
56+
self.verticalLayout.addWidget(self.line)
57+
self.formLayout = QtWidgets.QFormLayout()
58+
self.formLayout.setObjectName("formLayout")
59+
self.label_3 = QtWidgets.QLabel(parent=Form)
60+
self.label_3.setObjectName("label_3")
61+
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_3)
62+
self.label_id = QtWidgets.QLabel(parent=Form)
63+
self.label_id.setText("")
64+
self.label_id.setObjectName("label_id")
65+
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.label_id)
66+
self.label_6 = QtWidgets.QLabel(parent=Form)
67+
self.label_6.setObjectName("label_6")
68+
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_6)
69+
self.label_5 = QtWidgets.QLabel(parent=Form)
70+
self.label_5.setObjectName("label_5")
71+
self.formLayout.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_5)
72+
self.textEdit_def = QtWidgets.QTextEdit(parent=Form)
73+
self.textEdit_def.setReadOnly(True)
74+
self.textEdit_def.setObjectName("textEdit_def")
75+
self.formLayout.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.textEdit_def)
76+
self.label_status = QtWidgets.QLabel(parent=Form)
77+
self.label_status.setText("")
78+
self.label_status.setObjectName("label_status")
79+
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.label_status)
80+
self.verticalLayout.addLayout(self.formLayout)
81+
self.verticalLayout.setStretch(2, 1)
82+
83+
self.retranslateUi(Form)
84+
QtCore.QMetaObject.connectSlotsByName(Form)
85+
86+
def retranslateUi(self, Form):
87+
_translate = QtCore.QCoreApplication.translate
88+
Form.setWindowTitle(_translate("Form", "Form"))
89+
self.label.setText(_translate("Form", "Dataset"))
90+
self.label_2.setText(_translate("Form", "Basins"))
91+
self.label_3.setText(_translate("Form", "Basin"))
92+
self.label_6.setText(_translate("Form", "Status"))
93+
self.label_5.setText(_translate("Form", "Definition"))

0 commit comments

Comments
 (0)