diff --git a/bauh/api/abstract/view.py b/bauh/api/abstract/view.py index dbd1e6ac..db4070ad 100644 --- a/bauh/api/abstract/view.py +++ b/bauh/api/abstract/view.py @@ -140,7 +140,8 @@ class MultipleSelectComponent(InputViewComponent): def __init__(self, label: Optional[str], options: List[InputOption], default_options: Set[InputOption] = None, max_per_line: int = 1, tooltip: str = None, spaces: bool = True, max_width: int = -1, - max_height: int = -1, id_: str = None, min_width: Optional[int] = None): + max_height: int = -1, id_: str = None, min_width: Optional[int] = None, + opt_max_width: Optional[int] = None): super(MultipleSelectComponent, self).__init__(id_=id_) if not options: @@ -155,6 +156,7 @@ class MultipleSelectComponent(InputViewComponent): self.min_width = min_width self.max_width = max_width self.max_height = max_height + self.opt_max_width = opt_max_width def get_selected_values(self) -> list: selected = [] diff --git a/bauh/view/qt/components.py b/bauh/view/qt/components.py index 09fd2232..7b9da50f 100644 --- a/bauh/view/qt/components.py +++ b/bauh/view/qt/components.py @@ -524,10 +524,10 @@ class MultipleSelectQt(QGroupBox): if model.min_width and model.min_width > 0: self.setMinimumWidth(int(model.min_width)) - if model.max_width > 0: + if model.max_width and model.max_width > 0: self.setMaximumWidth(int(model.max_width)) - if model.max_height > 0: + if model.max_height and model.max_height > 0: self.setMaximumHeight(int(model.max_height)) if model.label: @@ -547,9 +547,13 @@ class MultipleSelectQt(QGroupBox): comp.setChecked(True) widget = QWidget() + widget.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) widget.setLayout(QHBoxLayout()) widget.layout().addWidget(comp) + if model.opt_max_width and model.opt_max_width > 0: + widget.setMinimumWidth(int(model.opt_max_width)) + if op.tooltip: help_icon = QLabel() @@ -585,10 +589,10 @@ class FormMultipleSelectQt(QWidget): if model.min_width and model.min_width > 0: self.setMinimumWidth(int(model.min_width)) - if model.max_width > 0: + if model.max_width and model.max_width > 0: self.setMaximumWidth(int(model.max_width)) - if model.max_height > 0: + if model.max_height and model.max_height > 0: self.setMaximumHeight(int(model.max_height)) self._layout = QGridLayout() @@ -610,9 +614,13 @@ class FormMultipleSelectQt(QWidget): comp.setChecked(True) widget = QWidget() + widget.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) widget.setLayout(QHBoxLayout()) widget.layout().addWidget(comp) + if model.opt_max_width and model.opt_max_width > 0: + widget.setMinimumWidth(int(model.opt_max_width)) + if op.tooltip: help_icon = QLabel()