summaryrefslogtreecommitdiff
path: root/ui/main_window.py
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2026-04-22 14:50:13 -0600
committerChristian Kolset <christian.kolset@gmail.com>2026-04-22 14:50:13 -0600
commit99445c6fd2fd4f15df828c79600b96b80fa1cfa6 (patch)
tree22c9933fc6bb942172a1f456bef7a35ec4be1726 /ui/main_window.py
parent445403fdc61f4e65736dc65a959f119fc096f4c0 (diff)
Added derived signal to be sources of other derived signals.
Fixed derived signal saving profile. Renamed Signals>Pipeline to Signas>Channels and adding/removing channels feature.
Diffstat (limited to 'ui/main_window.py')
-rw-r--r--ui/main_window.py29
1 files changed, 27 insertions, 2 deletions
diff --git a/ui/main_window.py b/ui/main_window.py
index 1e863ee..ec0f39d 100644
--- a/ui/main_window.py
+++ b/ui/main_window.py
@@ -245,10 +245,33 @@ class MainWindow(QMainWindow):
def _profile_new(self):
"""Reset to a blank slate."""
- self._ctrl.clear_widgets()
+ # Clear devices
+ for dev in list(self.registry.all_instances()):
+ try:
+ dev.disconnect()
+ except Exception:
+ pass
+ self.registry.remove_instance(dev.info.device_id)
+ self.engine.remove_device(dev.info.device_id)
+
+ # Clear signal pipelines
+ self.processor._pipelines.clear()
+
# Clear derived channels
- for dc in self.processor.get_derived():
+ for dc in list(self.processor.get_derived()):
self.processor.remove_derived(dc.channel_id)
+
+ # Clear controls
+ self._ctrl.clear_widgets()
+
+ # Refresh open windows
+ if self._win_devices:
+ self._win_devices.refresh()
+ if self._win_signals:
+ self._win_signals.refresh_derived()
+ if self._win_plot:
+ self._win_plot.refresh_channels()
+
self._chart.refresh()
self._status.setText("New profile — blank slate.")
@@ -280,6 +303,8 @@ class MainWindow(QMainWindow):
# Refresh open windows
if self._win_devices:
self._win_devices.refresh()
+ if self._win_signals:
+ self._win_signals.refresh_derived()
if self._win_plot:
self._win_plot.refresh_channels()
self._status.setText(f"Profile loaded: {profile.name}")