11from __future__ import annotations
22
3- import logging
4- import math
5- from collections . abc import Sequence , Mapping , Collection
6- from enum import Enum , auto , EnumMeta
3+ from abc import abstractmethod
4+ from collections . abc import Collection , Mapping , Sequence
5+ from enum import Enum , EnumMeta , auto
6+ from functools import partial
77from typing import Any , Callable
88
99from qt_material_icons import MaterialIcon
1010from qtpy import QtCore , QtGui , QtWidgets
1111
1212from . import utils
13- from .resizegrip import ResizeGrip
1413from .inputs import (
1514 FloatLineEdit ,
1615 FloatSlider ,
1716 IntLineEdit ,
1817 IntSlider ,
19- NumberSlider ,
2018 RatioButton ,
2119 TextEdit ,
2220)
21+ from .resizegrip import ResizeGrip
2322
2423MIN_SLIDER_WIDTH = 200
2524
2625
2726class ParameterWidget (QtWidgets .QWidget ):
28- enabled_changed : QtCore . Signal = QtCore .Signal (bool )
29- value_changed : QtCore . Signal = QtCore .Signal (object )
27+ enabled_changed = QtCore .Signal (bool )
28+ value_changed = QtCore .Signal (object )
3029
3130 _value : Any = None
3231 _default : Any = None
@@ -45,21 +44,29 @@ def __init__(self, name: str = '', parent: QtWidgets.QWidget | None = None) -> N
4544 self .set_label (utils .title (name ))
4645
4746 def __repr__ (self ) -> str :
48- return f'{ self .__class__ .__name__ } ({ repr ( self .name ()) } )'
47+ return f'{ self .__class__ .__name__ } ({ self ._name !r } )'
4948
5049 def _init_layout (self ) -> None :
5150 self ._layout = QtWidgets .QHBoxLayout ()
52- self ._layout .setContentsMargins (0 , 0 , 0 , 0 )
51+ self ._layout .setContentsMargins (QtCore . QMargins () )
5352 self .setLayout (self ._layout )
5453
55- def _init_ui ( self ) -> None :
56- pass
54+ @ abstractmethod
55+ def _init_ui ( self ) -> None : ...
5756
5857 def changeEvent (self , event : QtCore .QEvent ) -> None :
5958 if event .type () == QtCore .QEvent .Type .EnabledChange :
6059 self .enabled_changed .emit (self .isEnabled ())
6160 super ().changeEvent (event )
6261
62+ def value (self ) -> Any :
63+ return self ._value
64+
65+ def set_value (self , value : Any ) -> None :
66+ if value != self ._value :
67+ self ._value = value
68+ self .value_changed .emit (value )
69+
6370 def default (self ) -> Any :
6471 return self ._default
6572
@@ -85,20 +92,12 @@ def tooltip(self) -> str:
8592 def set_tooltip (self , tooltip : str ) -> None :
8693 self ._tooltip = tooltip
8794
88- def value (self ) -> Any :
89- return self ._value
90-
91- def set_value (self , value : Any ) -> None :
92- if value != self ._value :
93- self ._value = value
94- self .value_changed .emit (value )
95-
9695 def reset (self ) -> None :
9796 self .set_value (self .default ())
9897
9998
10099class IntParameter (ParameterWidget ):
101- value_changed : QtCore . Signal = QtCore .Signal (int )
100+ value_changed = QtCore .Signal (int )
102101
103102 _value : int = 0
104103 _default : int = 0
@@ -205,7 +204,7 @@ def _toggle_slider(self, value: bool) -> None:
205204
206205
207206class FloatParameter (IntParameter ):
208- value_changed : QtCore . Signal = QtCore .Signal (float )
207+ value_changed = QtCore .Signal (float )
209208
210209 _value : float = 0
211210 _default : float = 0
@@ -277,7 +276,7 @@ class MenuMode(Enum):
277276 REPLACE = auto ()
278277 TOGGLE = auto ()
279278
280- value_changed : QtCore . Signal = QtCore .Signal (str )
279+ value_changed = QtCore .Signal (str )
281280
282281 _value : str = ''
283282 _default : str = ''
@@ -431,7 +430,7 @@ class Method(Enum):
431430 SAVE_FILE = Method .SAVE_FILE
432431 EXISTING_DIR = Method .EXISTING_DIR
433432
434- value_changed : QtCore . Signal = QtCore .Signal (str )
433+ value_changed = QtCore .Signal (str )
435434
436435 _value : str = ''
437436 _default : str = ''
@@ -666,7 +665,7 @@ def _update_items(self) -> None:
666665
667666
668667class BoolParameter (ParameterWidget ):
669- value_changed : QtCore . Signal = QtCore .Signal (bool )
668+ value_changed = QtCore .Signal (bool )
670669
671670 _value : bool = False
672671 _default : bool = False
@@ -689,7 +688,7 @@ def set_value(self, value: bool) -> None:
689688
690689
691690class MultiIntParameter (IntParameter ):
692- value_changed : QtCore . Signal = QtCore .Signal (tuple )
691+ value_changed = QtCore .Signal (tuple )
693692
694693 _count : int = 2
695694 _value : tuple [int , ...] = (0 , 0 )
@@ -891,7 +890,7 @@ def set_value(self, value: tuple[float, ...]) -> None:
891890
892891
893892class PointParameter (MultiIntParameter ):
894- value_changed : QtCore . Signal = QtCore .Signal (QtCore .QPoint )
893+ value_changed = QtCore .Signal (QtCore .QPoint )
895894
896895 _value : QtCore .QPoint = QtCore .QPoint (0 , 0 )
897896 _default : QtCore .QPoint = QtCore .QPoint (0 , 0 )
@@ -917,7 +916,7 @@ def _cast_to_tuple(self, value: QtCore.QPoint) -> tuple[int, ...]:
917916
918917
919918class PointFParameter (MultiFloatParameter ):
920- value_changed : QtCore . Signal = QtCore .Signal (QtCore .QPointF )
919+ value_changed = QtCore .Signal (QtCore .QPointF )
921920
922921 _value : QtCore .QPointF = QtCore .QPointF (0 , 0 )
923922 _default : QtCore .QPointF = QtCore .QPointF (0 , 0 )
@@ -943,7 +942,7 @@ def _cast_to_tuple(self, value: QtCore.QPointF) -> tuple[float, ...]:
943942
944943
945944class SizeParameter (MultiIntParameter ):
946- value_changed : QtCore . Signal = QtCore .Signal (QtCore .QSize )
945+ value_changed = QtCore .Signal (QtCore .QSize )
947946
948947 _value : QtCore .QSize = QtCore .QSize (0 , 0 )
949948 _default : QtCore .QSize = QtCore .QSize (0 , 0 )
@@ -962,7 +961,7 @@ def _cast_to_tuple(self, value: QtCore.QSize) -> tuple[int, ...]:
962961
963962
964963class SizeFParameter (MultiFloatParameter ):
965- value_changed : QtCore . Signal = QtCore .Signal (QtCore .QSizeF )
964+ value_changed = QtCore .Signal (QtCore .QSizeF )
966965
967966 _value : QtCore .QSizeF = QtCore .QSizeF (0 , 0 )
968967 _default : QtCore .QSizeF = QtCore .QSizeF (0 , 0 )
@@ -981,7 +980,7 @@ def _cast_to_tuple(self, value: QtCore.QSizeF) -> tuple[float, ...]:
981980
982981
983982class ColorParameter (MultiFloatParameter ):
984- value_changed : QtCore . Signal = QtCore .Signal (QtGui .QColor )
983+ value_changed = QtCore .Signal (QtGui .QColor )
985984
986985 _count : int = 3
987986 _value : QtGui .QColor = QtGui .QColor (0 , 0 , 0 )
0 commit comments