GUI: Default fluorescence file name contains sample name

This commit is contained in:
leonarski_f committed 2025-12-05 11:29:16 +01:00
1 parent 2f95d522f0
commit 5f71f7730d
2 files changed
+18 -3

No files matched your search

+1
View File
@@ -347,6 +347,7 @@ class MainWindow(QMainWindow):
self.daq.update.connect(self.sample_logic.update_daq_status)
self.daq.update.connect(self.manual_sample_panel.update_daq_status)
self.daq.update.connect(self.fluor_panel.update_daq_status)
self.daq.update.connect(self.update_daq_status)
self.daq.standard_scan_completed.connect(self.rotation.scan_completed)
+17 -3
View File
@@ -5,7 +5,7 @@ from PySide6.QtGui import QPainter, QColor, QPen
from PySide6.QtWidgets import QWidget, QGridLayout, QGraphicsSimpleTextItem, QLabel
from aaredaqlib.logger_config import setup_logger
from aaredaqlib.models import FluorescenceSpectrumOutputModel
from aaredaqlib.models import FluorescenceSpectrumOutputModel, DAQStatusModel
logger = setup_logger("aareGUI")
@@ -44,6 +44,7 @@ class FluorescencePanel(QWidget):
self._last_x_keV = None
self._last_y_counts = None
self._sample_name = None
# Average dead time label
self.avg_dead_label = QLabel("Average dead time: -")
@@ -122,13 +123,19 @@ class FluorescencePanel(QWidget):
if self.series.count() == 0:
logger.info("No data to save.")
return
# Prefer cached arrays; fall back to reading from series
x_vals = self._last_x_keV
y_vals = self._last_y_counts
if x_vals is None or y_vals is None or len(x_vals) != self.series.count():
x_vals = [self.series.at(i).x() for i in range(self.series.count())]
y_vals = [self.series.at(i).y() for i in range(self.series.count())]
path, _ = QFileDialog.getSaveFileName(self, "Save Spectrum CSV", "spectrum.csv", "CSV files (*.csv)")
default_name = "spectrum.csv"
if self._sample_name is not None:
default_name = f"{self._sample_name}_spectrum.csv"
path, _ = QFileDialog.getSaveFileName(self, "Save Spectrum CSV", default_name, "CSV files (*.csv)")
if not path:
return
try:
@@ -232,4 +239,11 @@ class FluorescencePanel(QWidget):
self.axis_x.setRange(xmin, xmax)
self.axis_y.setRange(ymin, ymax)
except Exception as e:
logger.error(f"Update plot error: {e}")
logger.error(f"Update plot error: {e}")
@Slot(DAQStatusModel)
def update_daq_status(self, s: DAQStatusModel):
if s.sample is not None:
self._sample_name = s.sample.sample_name
else:
self._sample_name = None