From 31389a3dd0c7b1c671acdf49ae50b08455f466a7 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Tue, 24 Mar 2026 14:16:46 +0100 Subject: [PATCH] fix(lmfit_dialog): compact layout size policy for better alignment panel UX --- .../widgets/dap/lmfit_dialog/lmfit_dialog.py | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py index 9b261c89..2b5be14d 100644 --- a/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +++ b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py @@ -3,7 +3,7 @@ import os import shiboken6 from bec_lib.logger import bec_logger from qtpy.QtCore import Signal -from qtpy.QtWidgets import QPushButton, QTreeWidgetItem, QVBoxLayout, QWidget +from qtpy.QtWidgets import QPushButton, QSizePolicy, QTreeWidgetItem, QVBoxLayout, QWidget from bec_widgets.utils import UILoader from bec_widgets.utils.bec_widget import BECWidget @@ -69,6 +69,27 @@ class LMFitDialog(BECWidget, QWidget): self._hide_curve_selection = False self._hide_summary = False self._hide_parameters = False + self._configure_embedded_size_policy() + + def _configure_embedded_size_policy(self): + """Allow the compact dialog to shrink more gracefully in embedded layouts.""" + if self._ui_file != "lmfit_dialog_compact.ui": + return + + self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred) + self.ui.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred) + + for group in ( + self.ui.group_curve_selection, + self.ui.group_summary, + self.ui.group_parameters, + ): + group.setMinimumHeight(0) + group.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred) + + for view in (self.ui.curve_list, self.ui.summary_tree, self.ui.param_tree): + view.setMinimumHeight(0) + view.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Ignored) @property def enable_actions(self) -> bool: