feat: waveform drag-select + wheel zoom (selection_changed/view_changed)
This commit is contained in:
@@ -414,6 +414,32 @@ def test_waveform_view_and_selection(win):
|
||||
assert w.selection() is None
|
||||
|
||||
|
||||
def test_waveform_drag_emits_selection(win):
|
||||
w = win._wave
|
||||
w.resize(400, 96)
|
||||
w.set_view(10.0, 4.0)
|
||||
w.set_selection(11.0, 13.0)
|
||||
got = []
|
||||
w.selection_changed.connect(lambda s, e: got.append((s, e)))
|
||||
# new selection: press near t=10.5 (not on a handle), drag to t=13.5, release
|
||||
w._begin_drag_at_x(w._t_to_px(10.5))
|
||||
w._drag_to_x(w._t_to_px(13.5))
|
||||
w._end_drag()
|
||||
assert got, "selection_changed should fire on release"
|
||||
s, e = w.selection()
|
||||
assert 10.0 <= s < e <= 14.0
|
||||
|
||||
|
||||
def test_waveform_zoom_emits_view(win):
|
||||
w = win._wave
|
||||
w.resize(400, 96)
|
||||
w.set_view(10.0, 4.0)
|
||||
seen = []
|
||||
w.view_changed.connect(lambda s, d: seen.append((s, d)))
|
||||
w._zoom_at_x(200, 0.5) # zoom in about the middle
|
||||
assert seen and seen[-1][1] < 4.0
|
||||
|
||||
|
||||
def test_audition_button_present_and_safe(win):
|
||||
from PyQt6.QtWidgets import QPushButton
|
||||
assert isinstance(win._btn_audio_play, QPushButton)
|
||||
|
||||
Reference in New Issue
Block a user