From cd8367e5d0f77320fa70f1dd710e3afd0a8724e1 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 26 May 2026 17:52:32 +0200 Subject: [PATCH] Dashboard: fix display of flat phys fields (procedural domain) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The outer loop in DashboardTab.update assumed a 3-level hierarchy (domain → object → fields). Procedural fields sit one level higher (domain → field directly). Check _is_phys() first and render value / unit into the correct columns instead of descending into the dict and showing 'value' and 'unit' as separate rows. Co-Authored-By: Claude Sonnet 4.6 --- gui_client.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gui_client.py b/gui_client.py index 68f18cb..44217af 100644 --- a/gui_client.py +++ b/gui_client.py @@ -107,6 +107,7 @@ _TRACE_LABELS: dict[str, str] = { "measurements.temperatureBatteryStatus.temperatureHvBatteryMax": "batt. temp max", "measurements.temperatureBatteryStatus.temperatureHvBatteryMin": "batt. temp min", "measurements.temperatureOutsideStatus.temperatureOutside": "outside temp", + "procedural.range_at_100": "range 100%" } @@ -333,12 +334,15 @@ class DashboardTab(QWidget): d_item.setFont(0, bold) d_item.setForeground(0, domain_color) for obj_name, fields in domain_data.items(): - if not isinstance(fields, dict): - continue - obj_item = QTreeWidgetItem([obj_name]) - obj_item.setFont(0, bold) - self._add_fields(obj_item, fields, f"{domain}/{obj_name}") - d_item.addChild(obj_item) + if _is_phys(fields): + item = QTreeWidgetItem([obj_name, str(fields["value"]), fields["unit"]]) + item.setTextAlignment(1, Qt.AlignRight | Qt.AlignVCenter) + d_item.addChild(item) + elif isinstance(fields, dict): + obj_item = QTreeWidgetItem([obj_name]) + obj_item.setFont(0, bold) + self._add_fields(obj_item, fields, f"{domain}/{obj_name}") + d_item.addChild(obj_item) self._tree.addTopLevelItem(d_item) self._tree.expandAll()