summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2026-09-20 22:30:13 -0600
committerChristian Kolset <christian.kolset@gmail.com>2026-09-20 22:30:13 -0600
commit006366ef8099c8313ae596bf6267e9f98dfbeb5e (patch)
treecc3f76db630c21ec6422a6fd4f3053903a47d186 /core
parentbb8be051ffffa56a01093c9f3aaa80e84748568f (diff)
Make Channel the single source of truth for a reading's name
Device tab stays hardware-only (pins, wiring, may vary per workstation); the Channels window owns the profile-facing identity. Concretely: - Fix a real regression: SerialDevice generic-format Apply & Reconnect nulled out custom channel_names/units every time (no fallback, unlike every other optional field in reconfigure()), silently reverting to sig0/sig1/... ids. - Plot legend now live-tracks the current Signal/Channel name instead of freezing tr.label at add-time, so a rename shows up without re-adding the trace. - Add an inline quick-reconnect (combo + button, pre-selects the actual current source) directly on each Channel block in the Channels window, for the common single-source case — rewiring hardware no longer means touching every Plot/pipeline that referenced it. - Collapse the Channel ID field behind an "ID ▸" advanced toggle; channel_id is already auto-derived from the name (_slug_id) and rarely needs to be seen. - Devices tab's Signal "Name" column relabeled "Label" with a tooltip — de-emphasized now that Channel name is the real identity. - Move "create a Channel from this Signal" from a column on the Devices tab's signal table to a ⊕ button on each Signal row in the Channels tab's Namespace panel — the action now lives where the identity is created, not on the hardware tab. Only that instance opts in (on_create_channel); the read-only Namespace dock on the main window is unaffected. - Floor the Namespace panel's width at its columns' natural size so dragging the Channels-tab splitter narrower can't push the ⊕ column behind the horizontal scrollbar. - Breadcrumb log when a profile-saved Signal override can't be applied because the signal_id no longer exists. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'core')
-rw-r--r--core/profile.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/profile.py b/core/profile.py
index c77e646..da0f478 100644
--- a/core/profile.py
+++ b/core/profile.py
@@ -393,6 +393,8 @@ class ProfileManager:
continue
ch = dev.get_signal(ch_data["signal_id"])
if not ch:
+ print(f"[Profile] '{ch_data['device_id']}': signal '{ch_data['signal_id']}' "
+ f"no longer exists — saved override for '{ch_data.get('name', '?')}' dropped")
continue
ch.name = ch_data.get("name", ch.name)
ch.unit = ch_data.get("unit", ch.unit)