From 34c12b2b5b280206890cd03153b1c95116acc85e Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Thu, 13 Aug 2026 13:39:25 -0600 Subject: Channels tab drag-to-reorder, Namespace absolute references, fix stale Channel ID renames Generalized the Plot pane drag-to-reorder (_PaneDragHandle/_PlotDropContainer -> _DragHandle/_DragReorderContainer) and reused it for the Channels tab's derived-channel list; reordering also updates SignalProcessor's evaluation order (list order matters for chained Channels) via new reorder_derived(). Namespace panel: added an ID column (bare channel_id, matching the actual channels.get(...) script convention) and fixed the Source column for Channels to show resolved absolute references (dev_id/ch_id for a Signal, bare id for a chained Channel) instead of the operation kind, so a chain is traceable by eye. Fixed a real bug this surfaced: renaming a Channel's ID never propagated to other Channels' sources, leaving dangling ("derived", old_id) references that silently stopped updating. Added SignalProcessor.rename_derived() to fix up sources plus carry the ring buffer/latest-value cache to the new key, wired to DerivedBlock's Apply. Co-Authored-By: Claude Sonnet 5 --- ui/windows/config_window.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ui/windows/config_window.py') diff --git a/ui/windows/config_window.py b/ui/windows/config_window.py index 3bd3dc6..34cc789 100644 --- a/ui/windows/config_window.py +++ b/ui/windows/config_window.py @@ -34,7 +34,7 @@ from ui.windows.devices_window import DeviceRow, ChannelsTab from ui.windows.channels_window import PipelineTab, _slug_id, _dedupe_name from ui.windows.plot_window import ( PlotWindow, LayoutConfig, LayoutCanvas, PaneBlock, - build_default_layout, _PlotDropContainer, + build_default_layout, _DragReorderContainer, ) from ui.namespace_panel import NamespacePanel @@ -242,7 +242,7 @@ class _PlotTab(PlotWindow): scroll = QScrollArea(); scroll.setWidgetResizable(True) scroll.setObjectName("deviceScroll") - self._cont = _PlotDropContainer(self) + self._cont = _DragReorderContainer(self) self._blay = QVBoxLayout(self._cont) self._blay.setContentsMargins(10, 10, 10, 10); self._blay.setSpacing(12) self._blay.addStretch() -- cgit v1.2.3