diff --git a/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py b/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py index ebc238d5..66193ed2 100644 --- a/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py +++ b/NodeGraphQt/custom_widgets/properties_bin/custom_widget_slider.py @@ -10,9 +10,11 @@ class PropSlider(BaseProperty): widget. """ - def __init__(self, parent=None): + def __init__(self, parent=None, disable_scroll=True, realtime_update=False): super(PropSlider, self).__init__(parent) self._block = False + self._realtime_update = realtime_update + self._disable_scroll = disable_scroll self._slider = QtWidgets.QSlider() self._spinbox = QtWidgets.QSpinBox() self._init() @@ -33,6 +35,10 @@ def _init(self): self._slider.mousePressEvent = self._on_slider_mouse_press self._slider.mouseReleaseEvent = self._on_slider_mouse_release + if self._disable_scroll: + self._slider.wheelEvent = lambda _: None + self._spinbox.wheelEvent = lambda _: None + def _init_signal_connections(self): self._spinbox.valueChanged.connect(self._on_spnbox_changed) self._slider.valueChanged.connect(self._on_slider_changed) @@ -42,11 +48,14 @@ def _on_slider_mouse_press(self, event): self._slider_mouse_press_event(event) def _on_slider_mouse_release(self, event): - self.value_changed.emit(self.toolTip(), self.get_value()) + if not self._realtime_update: + self.value_changed.emit(self.toolTip(), self.get_value()) self._block = False def _on_slider_changed(self, value): self._spinbox.setValue(value) + if self._realtime_update: + self.value_changed.emit(self.toolTip(), self.get_value()) def _on_spnbox_changed(self, value): if value != self._slider.value(): @@ -106,10 +115,12 @@ def setValue(self, value): class PropDoubleSlider(PropSlider): - def __init__(self, parent=None, decimals=2): + def __init__(self, parent=None, decimals=2, disable_scroll=True, realtime_update=False): # Do not initialize Propslider, just its parents super(PropSlider, self).__init__(parent) self._block = False + self._realtime_update = realtime_update + self._disable_scroll = disable_scroll self._slider = QDoubleSlider(decimals=decimals) self._spinbox = QtWidgets.QDoubleSpinBox() self._init()