From 2863cd51c4cee8c003bce41df13ce78a41bfd871 Mon Sep 17 00:00:00 2001 From: x01dc Date: Thu, 16 Jul 2026 16:23:21 +0200 Subject: [PATCH] fix(bec_widgets): require sample owner in sample-storage widget The owner prompt was labeled and treated as optional, but an occupied slot must always have an owner recorded. Both the rename and new-sample dialogs now validate the owner the same way the name field already is: cancelling or leaving it empty aborts the write instead of silently falling back to a blank/previous owner. --- .../widgets/sample_storage/sample_storage.py | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/csaxs_bec/bec_widgets/widgets/sample_storage/sample_storage.py b/csaxs_bec/bec_widgets/widgets/sample_storage/sample_storage.py index 1735c3d..e14d74c 100644 --- a/csaxs_bec/bec_widgets/widgets/sample_storage/sample_storage.py +++ b/csaxs_bec/bec_widgets/widgets/sample_storage/sample_storage.py @@ -428,10 +428,17 @@ class SampleStorageWidget(BECWidget, QWidget): owner, ok = QInputDialog.getText( self, "Sample owner", - f"Owner for slot {self._slot_title(slot)} (optional):", + f"Owner for slot {self._slot_title(slot)}:", text=current_owner, ) - owner = owner.strip() if ok else current_owner + if not ok: + return + owner = owner.strip() + if not owner: + QMessageBox.warning( + self, "Invalid owner", "An occupied slot needs a non-empty owner." + ) + return if self._write_slot(slot, 1, name, owner): self.refresh() @@ -447,9 +454,16 @@ class SampleStorageWidget(BECWidget, QWidget): QMessageBox.warning(self, "Invalid name", "Please enter a non-empty sample name.") return owner, ok = QInputDialog.getText( - self, "Sample owner", f"Owner for slot {self._slot_title(slot)} (optional):" + self, "Sample owner", f"Owner for slot {self._slot_title(slot)}:" ) - owner = owner.strip() if ok else "" + if not ok: + return + owner = owner.strip() + if not owner: + QMessageBox.warning( + self, "Invalid owner", "An occupied slot needs a non-empty owner." + ) + return if self._write_slot(slot, 1, name, owner): self.refresh()