Repository navigation
Land #12, #13, #14 and #15 - #17
Merged
Merged
Conversation
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.
…d active icon toggles show accent color
…se item is shown
…ce every source is lossy # Conflicts: # CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.