The Library button, the view's header (search box or playlist name) and the seek row now share one band under the transport boxes, instead of the seek row hanging alone with a header strip below it. The now-playing panel caps at 560px and the gaps between controls share the rest evenly; more room under the menu bar. Long playlist names shrink up to 2pt, then elide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
1.2 KiB
Python
28 lines
1.2 KiB
Python
"""Round 62: the bpm box lines up with the rest of the transport bar.
|
|
|
|
The boxed controls (transport, shuffle, visualizer, bpm) were centered on the
|
|
whole bar while the now-playing panel hung from its top, so the bpm box sat
|
|
~11px lower than the panel right beside it. Now the panel is CONTROL_HEIGHT
|
|
tall and every control shares its top edge; the seek row sits under the panel.
|
|
"""
|
|
|
|
from tests.test_round21 import _build_bar
|
|
from lintunes.gui.transport import CONTROL_HEIGHT
|
|
|
|
|
|
def test_every_control_shares_the_now_playing_row(qapp, tmp_path):
|
|
bar = _build_bar(qapp, tmp_path)
|
|
panel = bar._now_playing.geometry()
|
|
assert panel.height() == CONTROL_HEIGHT
|
|
for widget in (bar._prev_btn.parentWidget(), bar._shuffle_btn.parentWidget(),
|
|
bar._visualizer, bar._volume_slider,
|
|
bar._bpm_button.parentWidget()):
|
|
g = widget.geometry()
|
|
assert (g.top(), g.bottom()) == (panel.top(), panel.bottom())
|
|
|
|
|
|
def test_seek_row_hangs_under_the_panel(qapp, tmp_path):
|
|
bar = _build_bar(qapp, tmp_path)
|
|
slider_top = bar._slider.mapTo(bar, bar._slider.rect().topLeft()).y()
|
|
assert slider_top > bar._now_playing.geometry().bottom()
|