mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-13 19:21:50 +02:00
refactor: rename field widgets
This commit is contained in:
@ -194,7 +194,7 @@ class DynamicFormItem(QWidget):
|
||||
self.valueChanged.emit()
|
||||
|
||||
|
||||
class StrMetadataField(DynamicFormItem):
|
||||
class StrFormItem(DynamicFormItem):
|
||||
def __init__(self, parent: QWidget | None = None, *, spec: FormItemSpec) -> None:
|
||||
super().__init__(parent=parent, spec=spec)
|
||||
self._main_widget.textChanged.connect(self._value_changed)
|
||||
@ -223,7 +223,7 @@ class StrMetadataField(DynamicFormItem):
|
||||
self._main_widget.setText(str(value))
|
||||
|
||||
|
||||
class IntMetadataField(DynamicFormItem):
|
||||
class IntFormItem(DynamicFormItem):
|
||||
def __init__(self, parent: QWidget | None = None, *, spec: FormItemSpec) -> None:
|
||||
super().__init__(parent=parent, spec=spec)
|
||||
self._main_widget.textChanged.connect(self._value_changed)
|
||||
@ -252,7 +252,7 @@ class IntMetadataField(DynamicFormItem):
|
||||
self._main_widget.setValue(value)
|
||||
|
||||
|
||||
class FloatDecimalMetadataField(DynamicFormItem):
|
||||
class FloatDecimalFormItem(DynamicFormItem):
|
||||
def __init__(self, parent: QWidget | None = None, *, spec: FormItemSpec) -> None:
|
||||
super().__init__(parent=parent, spec=spec)
|
||||
self._main_widget.textChanged.connect(self._value_changed)
|
||||
@ -286,7 +286,7 @@ class FloatDecimalMetadataField(DynamicFormItem):
|
||||
self._main_widget.setValue(float(value))
|
||||
|
||||
|
||||
class BoolMetadataField(DynamicFormItem):
|
||||
class BoolFormItem(DynamicFormItem):
|
||||
def __init__(self, *, parent: QWidget | None = None, spec: FormItemSpec) -> None:
|
||||
super().__init__(parent=parent, spec=spec)
|
||||
self._main_widget.stateChanged.connect(self._value_changed)
|
||||
@ -307,7 +307,7 @@ class BoolMetadataField(DynamicFormItem):
|
||||
self._main_widget.setChecked(value)
|
||||
|
||||
|
||||
class BoolToggleMetadataField(BoolMetadataField):
|
||||
class BoolToggleFormItem(BoolFormItem):
|
||||
def __init__(self, *, parent: QWidget | None = None, spec: FormItemSpec) -> None:
|
||||
if spec.info.default is PydanticUndefined:
|
||||
spec.info.default = False
|
||||
@ -321,7 +321,7 @@ class BoolToggleMetadataField(BoolMetadataField):
|
||||
self._main_widget.setChecked(self._default)
|
||||
|
||||
|
||||
class DictMetadataField(DynamicFormItem):
|
||||
class DictFormItem(DynamicFormItem):
|
||||
def __init__(self, *, parent: QWidget | None = None, spec: FormItemSpec) -> None:
|
||||
super().__init__(parent=parent, spec=spec)
|
||||
self._main_widget.data_changed.connect(self._value_changed)
|
||||
@ -351,7 +351,7 @@ class _ItemAndWidgetType(NamedTuple):
|
||||
default: int | float | str
|
||||
|
||||
|
||||
class ListMetadataField(DynamicFormItem):
|
||||
class ListFormItem(DynamicFormItem):
|
||||
def __init__(self, *, parent: QWidget | None = None, spec: FormItemSpec) -> None:
|
||||
super().__init__(parent=parent, spec=spec)
|
||||
self._main_widget: QListWidget
|
||||
@ -440,22 +440,22 @@ WidgetTypeRegistry = dict[
|
||||
]
|
||||
|
||||
DEFAULT_WIDGET_TYPES: Final[WidgetTypeRegistry] = {
|
||||
"str": (lambda anno: anno in [str, str | None, None], StrMetadataField),
|
||||
"int": (lambda anno: anno in [int, int | None], IntMetadataField),
|
||||
"str": (lambda anno: anno in [str, str | None, None], StrFormItem),
|
||||
"int": (lambda anno: anno in [int, int | None], IntFormItem),
|
||||
"float_decimal": (
|
||||
lambda anno: anno in [float, float | None, Decimal, Decimal | None],
|
||||
FloatDecimalMetadataField,
|
||||
FloatDecimalFormItem,
|
||||
),
|
||||
"bool": (lambda anno: anno in [bool, bool | None], BoolMetadataField),
|
||||
"bool": (lambda anno: anno in [bool, bool | None], BoolFormItem),
|
||||
"dict": (
|
||||
lambda anno: anno in [dict, dict | None]
|
||||
or (isinstance(anno, GenericAlias) and anno.__origin__ is dict),
|
||||
DictMetadataField,
|
||||
DictFormItem,
|
||||
),
|
||||
"list": (
|
||||
lambda anno: anno in [list, list | None]
|
||||
or (isinstance(anno, GenericAlias) and anno.__origin__ is list),
|
||||
ListMetadataField,
|
||||
ListFormItem,
|
||||
),
|
||||
}
|
||||
|
||||
@ -468,7 +468,7 @@ def widget_from_type(
|
||||
if predicate(annotation):
|
||||
return widget_type
|
||||
logger.warning(f"Type {annotation} is not (yet) supported in metadata form creation.")
|
||||
return StrMetadataField
|
||||
return StrFormItem
|
||||
|
||||
|
||||
if __name__ == "__main__": # pragma: no cover
|
||||
|
@ -11,8 +11,8 @@ from bec_widgets.utils.forms_from_types import styles
|
||||
from bec_widgets.utils.forms_from_types.forms import PydanticModelForm
|
||||
from bec_widgets.utils.forms_from_types.items import (
|
||||
DEFAULT_WIDGET_TYPES,
|
||||
BoolMetadataField,
|
||||
BoolToggleMetadataField,
|
||||
BoolFormItem,
|
||||
BoolToggleFormItem,
|
||||
widget_from_type,
|
||||
)
|
||||
|
||||
@ -30,8 +30,8 @@ class DeviceConfigForm(PydanticModelForm):
|
||||
**kwargs,
|
||||
)
|
||||
self._widget_types = DEFAULT_WIDGET_TYPES.copy()
|
||||
self._widget_types["bool"] = (lambda anno: anno is bool, BoolToggleMetadataField)
|
||||
self._widget_types["optional_bool"] = (lambda anno: anno == bool | None, BoolMetadataField)
|
||||
self._widget_types["bool"] = (lambda anno: anno is bool, BoolToggleFormItem)
|
||||
self._widget_types["optional_bool"] = (lambda anno: anno == bool | None, BoolFormItem)
|
||||
self._validity.setVisible(False)
|
||||
self._connect_to_theme_change()
|
||||
self.populate()
|
||||
|
Reference in New Issue
Block a user