11"""Tracking Signals Tab QObjects.
22"""
33
4- from typing import Dict , List , Any
4+ from typing import Dict , List , Any , Optional
55
66from PySide2 .QtCore import Property , QObject , Signal , Slot
77from PySide2 .QtCharts import QtCharts
@@ -24,6 +24,7 @@ class TrackingSignalsPoints(QObject):
2424 _xaxis_min : float = 0.0
2525 _xaxis_max : float = 0.0
2626 _check_labels : List [str ] = []
27+ _empty_series : Optional [QtCharts .QXYSeries ] = None
2728 _all_series : List [QtCharts .QXYSeries ] = []
2829 _enabled_series : List [QtCharts .QXYSeries ] = []
2930 num_labels_changed = Signal (int , arguments = "num_labels" )
@@ -76,26 +77,34 @@ def addSeries(self, series) -> None:
7677 self ._all_series .append (series )
7778 self .all_series_changed .emit () # type: ignore
7879
80+ @Slot (QtCharts .QAbstractSeries ) # type: ignore
81+ def addEmptySeries (self , series ) -> None :
82+ """Store a QML created series in empty_series"""
83+ self ._empty_series = series
84+
7985 @Slot () # type: ignore
8086 def fill_all_series (self ) -> None :
8187 cur_num_labels = len (TRACKING_SIGNALS_TAB [Keys .LABELS ])
8288 if self ._num_labels != cur_num_labels :
8389 self ._num_labels = cur_num_labels
8490 self .num_labels_changed .emit (cur_num_labels ) # type: ignore
85- points_for_all_series = TRACKING_SIGNALS_TAB [Keys .POINTS ]
91+ all_points = TRACKING_SIGNALS_TAB [Keys .POINTS ]
92+ points_for_all_series = all_points [:- 1 ]
93+ if self ._empty_series is not None and len (all_points ) > 0 :
94+ self ._empty_series .replace (all_points [- 1 ])
8695
8796 labels = TRACKING_SIGNALS_TAB [Keys .LABELS ]
8897 colors = TRACKING_SIGNALS_TAB [Keys .COLORS ]
8998 if self ._check_labels != TRACKING_SIGNALS_TAB [Keys .CHECK_LABELS ]:
9099 self ._check_labels = TRACKING_SIGNALS_TAB [Keys .CHECK_LABELS ]
91100 self .check_labels_changed .emit () # type: ignore
92101
93- if len (points_for_all_series ) != 0 :
94- xaxis_min = points_for_all_series [0 ][- 1 ].x () + TRACKING_SIGNALS_TAB [Keys .XMIN_OFFSET ]
102+ if len (all_points ) != 0 :
103+ xaxis_min = all_points [0 ][- 1 ].x () + TRACKING_SIGNALS_TAB [Keys .XMIN_OFFSET ]
95104 if self ._xaxis_min != xaxis_min :
96105 self ._xaxis_min = xaxis_min
97106 self .xaxis_min_changed .emit () # type: ignore
98- xaxis_max = points_for_all_series [0 ][- 1 ].x ()
107+ xaxis_max = all_points [0 ][- 1 ].x ()
99108 if self ._xaxis_max != xaxis_max :
100109 self ._xaxis_max = xaxis_max
101110 self .xaxis_max_changed .emit () # type: ignore
0 commit comments