RasterGridManager: forward file prefix

This commit is contained in:
2025-06-12 15:48:06 +02:00
parent cf3b61bd32
commit ccceabd5cc
3 changed files with 101 additions and 7 deletions
+3
View File
@@ -172,6 +172,9 @@ class MainWindow(QMainWindow):
self.data_collection.raster.transmission_updated.connect(self.raster.update_transmission)
self.data_collection.raster.dtz_updated.connect(self.raster.update_dtz)
self.data_collection.file_path_panel.set_file_prefix(self.raster.update_filename)
self.raster.update_filename(self.data_collection.file_path_panel.filename)
self.raster.grid_scan.connect(self.daq.raster_scan)
self.raster.grid_scan_size_changed.connect(self.data_collection.raster.grid_scan_size_change)
+94 -7
View File
@@ -1,21 +1,108 @@
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QLineEdit
from datetime import datetime
from PySide6.QtCore import Signal, Slot
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QLineEdit, QSpinBox, QCheckBox
from aaregui.widgets.title_label import TitleLabel
class FilePathPanel(QWidget):
path_updated = Signal(str)
def __init__(self, parent=None):
super().__init__(parent)
grid_layout = QGridLayout(self)
self.__filename = ""
self.__formatted_date = datetime.now().strftime('%y%m%d')
grid_layout.addWidget(TitleLabel("Dataset path", self), 0, 0, 1, 2)
grid_layout.addWidget(QLabel("Directory", parent=self), 1, 0)
self.directory_edit = QLineEdit(parent=self)
self.directory_edit.setStyleSheet("background-color: rgb(255, 255, 255);")
grid_layout.addWidget(self.directory_edit, 1, 1)
self.save_file_checkbox = QCheckBox("Save data to file system", parent=self)
self.save_file_checkbox.setChecked(True)
self.save_file_checkbox.stateChanged.connect(self.update_filename)
self.save_file_checkbox.setToolTip("If not checked, images will be viewable in the preview interface, but no file will be saved on file system.")
grid_layout.addWidget(self.save_file_checkbox, 1, 0, 1, 2)
grid_layout.addWidget(QLabel("File prefix", parent=self), 2, 0)
grid_layout.addWidget(QLabel("Directory", parent=self), 2, 0)
self.directory_edit = QLineEdit("{date}", parent=self)
self.directory_edit.setStyleSheet("background-color: rgb(255, 255, 255);")
self.directory_edit.setToolTip("Provide subdirectory for your files, you can use \"{date}\" as macro for date.")
grid_layout.addWidget(self.directory_edit, 2, 1)
grid_layout.addWidget(QLabel("File prefix", parent=self), 3, 0)
self.file_prefix_edit = QLineEdit(parent=self)
self.file_prefix_edit.setStyleSheet("background-color: rgb(255, 255, 255);")
grid_layout.addWidget(self.file_prefix_edit, 2, 1)
grid_layout.addWidget(self.file_prefix_edit, 3, 1)
grid_layout.addWidget(QLabel("Run number", parent=self), 4, 0)
self.run_number_edit = QSpinBox(parent=self)
self.run_number_edit.setStyleSheet("background-color: rgb(255, 255, 255);")
self.run_number_edit.setValue(1)
self.run_number_edit.setRange(1, 999)
grid_layout.addWidget(self.run_number_edit, 4, 1)
grid_layout.addWidget(QLabel("File name", parent=self), 5, 0)
self.file_name_label = QLabel(parent=self)
self.file_name_label.setWordWrap(True)
grid_layout.addWidget(self.file_name_label, 5, 1)
self.directory_edit.textChanged.connect(self.set_directory)
self.file_prefix_edit.textChanged.connect(self.set_file_prefix)
self.run_number_edit.valueChanged.connect(self.set_run_number)
self.update_filename()
def update_filename(self):
if not self.save_file_checkbox.isChecked():
self.__filename = ""
self.file_name_label.setText("No file will be saved.")
self.file_name_label.setStyleSheet("color: rgb(128, 128, 128);")
self.path_updated.emit(self.__filename)
return
dir_name = self.directory_edit.text()
file_prefix = self.file_prefix_edit.text()
run_number = self.run_number_edit.value()
if dir_name == "":
self.__filename = ""
elif dir_name[-1] == "/":
self.__filename = dir_name
else:
self.__filename = dir_name + "/"
if file_prefix == "":
self.__filename += "run"
else:
self.__filename += file_prefix
self.__filename += f"_{run_number:03d}"
self.__filename = self.__filename.replace('{date}', self.__formatted_date)
self.file_name_label.setText(self.__filename + "_master.h5")
self.file_name_label.setStyleSheet("color: rgb(0, 0, 0);")
self.path_updated.emit(self.__filename)
@Slot()
def increment_run_number(self):
self.run_number_edit.setValue(self.run_number_edit.value() + 1)
self.update_filename()
@Slot()
def reset_run_number(self):
self.run_number_edit.setValue(1)
@Slot(str)
def set_directory(self, _: str):
self.update_filename()
@Slot(str)
def set_file_prefix(self, _: str):
self.update_filename()
@Slot(int)
def set_run_number(self, _: int):
self.update_filename()
@property
def filename(self) -> str:
return self.__filename
@@ -228,3 +228,7 @@ class RasterGridManager(QObject):
@Slot(float)
def update_dtz(self, dtz: float):
self.__active_grid.dtz = dtz
@Slot(str)
def update_filename(self, filename: str):
self.__active_grid.file_prefix = filename