Skip to content

Commit a464328

Browse files
committed
Preview point size while dragging slider
Change slider behavior so moves provide a live visual preview while commits occur only on release. setTracking(False) is set on the size slider; sliderMoved is connected to _on_slider_moved_preview to update the label and emit point_size_changed for visual-only updates, while valueChanged is connected to _on_value_changed_commit to update the label and emit point_size_commit_requested for persisting the change. This improves UX by avoiding premature commits during dragging and clarifies signal semantics.
1 parent 0a7da70 commit a464328

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

src/napari_deeplabcut/ui/layer_stats.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,20 @@ def __init__(self, parent: QWidget | None = None):
6666
wrapper = QVBoxLayout(self)
6767
wrapper.addLayout(form)
6868

69-
self._size_slider.valueChanged.connect(self._on_slider_changed)
70-
self._size_slider.sliderReleased.connect(self._emit_commit)
69+
self._size_slider.setTracking(False)
70+
71+
self._size_slider.sliderMoved.connect(self._on_slider_moved_preview)
72+
self._size_slider.valueChanged.connect(self._on_value_changed_commit)
7173

7274
self.set_point_size_enabled(False, reason="Select a DLC keypoints layer to edit point size.")
7375

74-
def _on_slider_changed(self, value: int) -> None:
76+
def _on_slider_moved_preview(self, value: int) -> None:
77+
self._size_value.setText(str(int(value)))
78+
self.point_size_changed.emit(int(value)) # visual only
79+
80+
def _on_value_changed_commit(self, value: int) -> None:
7581
self._size_value.setText(str(int(value)))
76-
self.point_size_changed.emit(int(value))
82+
self.point_size_commit_requested.emit(int(value)) # save / persist
7783

7884
def _emit_commit(self) -> None:
7985
self.point_size_commit_requested.emit(self.point_size())

0 commit comments

Comments
 (0)