diff --git a/gui_client.py b/gui_client.py index c7fae07..c84cde1 100644 --- a/gui_client.py +++ b/gui_client.py @@ -384,6 +384,12 @@ class DashboardTab(QWidget): # ── Plot tab ────────────────────────────────────────────────────────────────── +class TimeAxisItem(pg.AxisItem): + """X-axis that shows HH:MM:SS, suppressing any date prefix.""" + def tickStrings(self, values, scale, spacing): + return [datetime.fromtimestamp(v).strftime("%H:%M:%S") for v in values] + + class PlotTab(QWidget): NUM_PLOTS = 8 MAX_TRACES = 4 @@ -421,6 +427,7 @@ class PlotTab(QWidget): self._proxies: list = [] self._add_combos: list[QComboBox] = [] self._chip_bars: list[QHBoxLayout] = [] + self._date_labels: list[QLabel] = [] for i in range(self.NUM_PLOTS): cell = QWidget() @@ -465,12 +472,18 @@ class PlotTab(QWidget): ctrl_row.addLayout(chip_bar) ctrl_row.addStretch() + date_lbl = QLabel("") + date_lbl.setStyleSheet("color: #666688; font-size: 10px;") + date_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) + self._date_labels.append(date_lbl) + ctrl_row.addWidget(date_lbl) + cell_vbox.addWidget(ctrl) # plot pw = pg.PlotWidget( background="#12121e", - axisItems={"bottom": pg.DateAxisItem(orientation="bottom")}, + axisItems={"bottom": TimeAxisItem(orientation="bottom")}, ) pw.showGrid(x=True, y=True, alpha=0.3) pw.addLegend(offset=(0, 0), labelTextSize="8pt") @@ -663,7 +676,16 @@ class PlotTab(QWidget): name=label, ) - pw.setXRange(x_min if x_min is not None else cutoff, now, padding=0.02) + x_lo = x_min if x_min is not None else cutoff + pw.setXRange(x_lo, now, padding=0.02) + + d_lo = datetime.fromtimestamp(x_lo).date() + d_hi = datetime.fromtimestamp(now).date() + if d_lo == d_hi: + date_str = d_lo.strftime("%Y-%m-%d") + else: + date_str = f"{d_lo.strftime('%Y-%m-%d')} – {d_hi.strftime('%Y-%m-%d')}" + self._date_labels[i].setText(date_str) # ── cursor tracing ────────────────────────────────────────────────────────