summaryrefslogtreecommitdiff
path: root/ui/main_window.py
diff options
context:
space:
mode:
Diffstat (limited to 'ui/main_window.py')
-rw-r--r--ui/main_window.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/ui/main_window.py b/ui/main_window.py
index d585a83..90294ac 100644
--- a/ui/main_window.py
+++ b/ui/main_window.py
@@ -203,6 +203,9 @@ class MainWindow(QMainWindow):
self._clock = QTimer(self); self._clock.setInterval(1000)
self._clock.timeout.connect(self._tick)
+ self._rec_blink = QTimer(self); self._rec_blink.setInterval(600)
+ self._rec_blink.timeout.connect(self._tick_rec_blink)
+
def _connect_signals(self):
self.engine.new_data.connect(self.processor.on_raw_data)
self.processor.processed_data.connect(self._chart.on_new_data)
@@ -595,9 +598,12 @@ class MainWindow(QMainWindow):
self._run_btn.setText("⏹ STOP"); self._log_btn.setEnabled(True)
self._clock.start(); self._status.setText("Acquiring…")
else:
+ self._ctrl.safe_stop_all() # master switch — stop outputs before halting acquisition
self.engine.stop()
self._run_btn.setText("▶ RUN")
- if self._log_btn.isChecked(): self._log_btn.setChecked(False)
+ if self._log_btn.isChecked():
+ self._log_btn.setChecked(False)
+ self._toggle_log(False) # setChecked() alone won't fire clicked — stop blink/logging explicitly
self._log_btn.setEnabled(False); self._clock.stop()
self._status.setText("Stopped")
@@ -613,8 +619,18 @@ class MainWindow(QMainWindow):
os.path.join(self._settings.get("log_dir", "logs"), ""))
self._log_btn.setText("⏹ LOGGING")
self._status.setText(f"Logging → {p}")
+ self._rec_blink.start()
else:
self.engine.stop_logging(); self._log_btn.setText("⬤ LOG")
+ self._rec_blink.stop()
+ self._log_btn.setProperty("recording", False)
+ self._log_btn.style().unpolish(self._log_btn); self._log_btn.style().polish(self._log_btn)
+
+ def _tick_rec_blink(self):
+ """Pulse the Log button's background while a recording is active."""
+ on = not self._log_btn.property("recording")
+ self._log_btn.setProperty("recording", on)
+ self._log_btn.style().unpolish(self._log_btn); self._log_btn.style().polish(self._log_btn)
# ── Theme / settings ──────────────────────────────────────────────────