From 357824bba1a43a3f5150a8318c273c40f981553c Mon Sep 17 00:00:00 2001 From: jbellister-slac Date: Fri, 13 Mar 2026 10:15:15 -0700 Subject: [PATCH 1/3] ENH: Add indication that archive data is being fetched to the plot when it takes longer than a couple seconds to retrieve --- trace/main.py | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/trace/main.py b/trace/main.py index 9423089..aa7f4b1 100644 --- a/trace/main.py +++ b/trace/main.py @@ -7,7 +7,7 @@ from datetime import datetime from qtpy.QtGui import QFont, QColor, QImage, QKeySequence -from qtpy.QtCore import Qt, Slot, QSize, Signal, QBuffer, QIODevice, QSettings +from qtpy.QtCore import Qt, Slot, QSize, Signal, QBuffer, QIODevice, QSettings, QTimer from qtpy.QtWidgets import ( QMenu, QLabel, @@ -184,6 +184,30 @@ def build_plot_side(self, parent: QWidget) -> QWidget: show_all=False, ) + self._archive_status_label = QLabel("Fetching archive data...", self.plot) + self._archive_status_label.hide() + self._archive_status_label.setStyleSheet( + """ + QLabel { + background-color: rgba(0, 0, 0, 140); + color: white; + padding: 6px 10px; + border-radius: 4px; + font-weight: bold; + } + """ + ) + self._archive_status_label.adjustSize() + self._archive_status_label.move(20, 20) + self._archive_status_label.raise_() + + self._archive_status_timer = QTimer(self) + self._archive_status_timer.setSingleShot(True) + self._archive_status_timer.timeout.connect(self.show_archive_status) + + self.plot.archive_request_started.connect(self.on_archive_request_started) + self.plot.archive_request_finished.connect(self.on_archive_request_finished) + multi_axis_plot = self.plot.plotItem multi_axis_plot.vb.menu = None multi_axis_plot.sigXRangeChangedManually.connect(self.disable_auto_scroll_button.click) @@ -435,6 +459,22 @@ def on_theme_changed(self, theme: Theme) -> None: if settings_icon: self.settings_button.setIcon(settings_icon) + def on_archive_request_started(self) -> None: + self._archive_status_label.hide() + self._archive_status_timer.stop() + self._archive_status_timer.start(2000) + + def on_archive_request_finished(self) -> None: + self._archive_status_timer.stop() + self._archive_status_label.hide() + + def show_archive_status(self) -> None: + if not self.plot._archive_request_queued: + return + self._archive_status_label.adjustSize() + self._archive_status_label.show() + self._archive_status_label.raise_() + def set_curve_palette(self, palette_name: str, apply: bool = False): """ Set color palette for adding new curves From 3337a5dcf12cf0b4f6abd80b96d4cc63c44c7ce5 Mon Sep 17 00:00:00 2001 From: jbellister-slac Date: Mon, 16 Mar 2026 10:53:52 -0700 Subject: [PATCH 2/3] Remove unneeded hide call --- trace/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/trace/main.py b/trace/main.py index aa7f4b1..34588f1 100644 --- a/trace/main.py +++ b/trace/main.py @@ -460,7 +460,6 @@ def on_theme_changed(self, theme: Theme) -> None: self.settings_button.setIcon(settings_icon) def on_archive_request_started(self) -> None: - self._archive_status_label.hide() self._archive_status_timer.stop() self._archive_status_timer.start(2000) From 4828f9fb45c5d1413fc01e1b2e3cee44ca56430d Mon Sep 17 00:00:00 2001 From: jbellister-slac Date: Mon, 16 Mar 2026 11:01:47 -0700 Subject: [PATCH 3/3] pre-commit change --- trace/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trace/main.py b/trace/main.py index 34588f1..8749998 100644 --- a/trace/main.py +++ b/trace/main.py @@ -7,7 +7,7 @@ from datetime import datetime from qtpy.QtGui import QFont, QColor, QImage, QKeySequence -from qtpy.QtCore import Qt, Slot, QSize, Signal, QBuffer, QIODevice, QSettings, QTimer +from qtpy.QtCore import Qt, Slot, QSize, QTimer, Signal, QBuffer, QIODevice, QSettings from qtpy.QtWidgets import ( QMenu, QLabel,