RasterGridManager: forward file prefix
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user