diff --git a/robot_log_visualizer/plotter/pyqtgraph_viewer_canvas.py b/robot_log_visualizer/plotter/pyqtgraph_viewer_canvas.py index c8acaac..372f1a4 100644 --- a/robot_log_visualizer/plotter/pyqtgraph_viewer_canvas.py +++ b/robot_log_visualizer/plotter/pyqtgraph_viewer_canvas.py @@ -10,8 +10,8 @@ import pyqtgraph as pg # type: ignore from qtpy import QtCore, QtWidgets # type: ignore -from robot_log_visualizer.utils.utils import ColorPalette from robot_log_visualizer.signal_provider.signal_provider import ProviderType +from robot_log_visualizer.utils.utils import ColorPalette # ------------------------------------------------------------------------ # Type aliases @@ -201,6 +201,11 @@ def _add_missing_curves( symbol=None, ) + # For real-time mode, disable curve clickability to avoid interfering with live updates + if self._signal_provider.provider_type == ProviderType.REALTIME: + self._curves[key].setCurveClickable(False) + self._curves[key].setEnabled(False) + def _remove_obsolete_curves(self, paths: Sequence[Path]) -> None: """Delete curves that disappeared from *paths*.""" valid = {"/".join(p) for p in paths} @@ -240,6 +245,10 @@ def _on_mouse_click(self, event) -> None: # noqa: N802 if event.button() != QtCore.Qt.MouseButton.LeftButton: return # ignore other buttons + # Disable point selection / labels in realtime mode + if self._signal_provider.provider_type == ProviderType.REALTIME: + return + # Scene → data coordinates scene_pos = event.scenePos() if not self._plot.sceneBoundingRect().contains(scene_pos):