Skip to content

Land #12, #13, #14 and #15 - #17

Merged
neur0map merged 11 commits into
mainfrom
integrate1021
Oct 21, 2026
Merged

neur0map merged 11 commits into
mainfrom
integrate1021

Conversation

@neur0map

Copy link
Copy Markdown
Member

Merges #12, #13, #14 and #15 with two small follow-ups: changelog entries and a fallback so download settings saved by a newer version do not stop the daemon.

Satirito and others added 11 commits October 15, 2026 11:54
The queue had no context menu at all, so moving a queued track into a
playlist meant liking it first, finding it in Liked Songs and using the
menu there. The cards on Home, Search and the library had none either,
and neither did the playing track in the bar.

Every surface now answers a right-click through the one Menu the lists
already use:

- queue rows, with "Remove from queue"; the playing row keeps the menu
  but not the removal, since the queue cannot drop the track out from
  under itself
- cards, through CardGrid and Shelf. A song card gets the track menu; an
  album, artist or playlist is not a track, so it gets Play, Open and Add
  to shortcuts, run through the card's own logic
- the playing track in the player bar and in the mini window

Three things came out of doing it:

"Play next" and "Add to queue" are a no-op on the track that is already
playing, so they are left out there rather than offered and ignored.

The menu lived inside the list that opened it, so its dismiss layer only
covered that list: a click anywhere else left the menu standing. It now
lives on the window, which also means a list with clip: true can no
longer cut the panel off.

openAt read panel.height to decide whether to flip the menu above the
press, but the height follows the items the song produces and is not
known at that moment. The placement is a binding on the panel instead,
so a menu opened near the bottom of the window lands inside it. That is
what the player bar needs every single time.
"Recently played" on Home is a list of browse items like the shelves, so
it answers a right-click the same way. That made the block deciding what
an item is a third copy, so it moved into ItemMenu: the host hands it its
own play and open functions and the component picks the track menu for a
song and Play / Open / Add to shortcuts for anything else.

The wheel closing the menu did not work. WheelHandler is the one handler
Qt narrows to PointerDevice.Mouse, and the Wayland plugin stamps every
wheel event with the seat's primary pointing device, which is reported as
a touchpad on a machine with no touchpad in it. PlayerBar and HomeFeed
already name both devices for that reason; this one did not.
… lossy

Settings > Downloads gains a FLAC choice next to Original, MP3 and Opus.
yt-dlp extracts with --audio-format flac and no bitrate, and ffmpeg writes
16-bit samples: the sources are YouTube and SoundCloud streams, so the bits
a 24-bit decode adds are noise FLAC cannot compress, and dropping them makes
the file about half the size. Cover art and lyrics go in through the same
lofty path as the other formats, and the completed-file detection already
knew the flac extension.
…ce every source is lossy

# Conflicts:
#	CHANGELOG.md
@neur0map
neur0map merged commit a1510fb into main Oct 21, 2026
5 checks passed
@neur0map
neur0map deleted the integrate1021 branch October 21, 2026 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants