Add a detailed view, a playlist order of your own and Now Playing kept between starts, and prepare the 0.5.0 release #20
No reviewers
Labels
No labels
Kind/Bug
Kind/Chore
Kind/Docs
Kind/Feature
Kind/Security
Priority
High
Priority
Low
Reviewed
Duplicate
Reviewed
Invalid
Status
Blocked
Status
Needs-Decision
Status
Wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
Strawly-Music/desktop!20
Loading…
Reference in a new issue
No description provided.
Delete branch "detailed-view-0.5.0"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Detailed view
[menus] detailedView. The detailed view is a table for All Music and every playlist, with the cover left of the columns.SongColumns.qml(shown columns, their order, widths and sort for one list),SongTableHeader.qml(the column names, with the column popup) andSongTableCells.qml(one row's cells).columns.rsworks out the columns from a song's tags, forSongModelandTrackModelalike. Each column has a role named after it, such asalbumColumn, andlengthSortsorts the length by seconds. Until the tags are read, the title and artist come from the file name.TrackModelreads the tags of a playlist's songs in the background, asSongModeldoes, and matches the results by path, so rows moved in the meantime keep the right values.search.rscaches the tags and the length next to the search text, so the table reads no file twice.SearchFilterModelsorts in natural order throughlessThan, with empty values last in both directions. A sorted playlist plays in the order shown through the newPlayer.playPlaylistTracks, and reordering, Move up and Move down are off while it is sorted, as during a search.FontMetricsfrom the five longest valueslongest()returns. When the columns do not fit, the widest narrow first, so short ones stay whole. Dragging the line at a column's right edge sets its width, up to the room the other columns leave. Dragging a column name moves the column.columns.confin the app's config folder, keyed byallMusicorplaylist:and the path.Playlists
playlistOrder. New playlists go at the end, by name. Sort A-Z, above the playlists and in their right-click menu, clears the order. While not searching, the list usesPlaylistLibrarydirectly, so a drag moves rows in place instead of resetting the proxy.Now Playing
now-playing.m3u8in the app's config folder, with absolute paths so portal paths stay valid. The place, the playlist it came from, the shuffle setting and the time are saved under[nowPlaying]. The time is saved on pause and every 5 seconds of playback.Player.resume()loads all of it paused and seeks once the song has loaded. A song that cannot be read at that point does not start the next one.Player bar and Settings
Fixes
0.5.0 release prep
Cargo.toml,Cargo.lock,CMakeLists.txtand the README's install command.data/app.strawly.music.metainfo.xml.appstreamcli validatepasses.CHANGELOG.mdare now under[0.5.0] - 2026-10-20, with the compare links updated.FEATURES.mdcovers the detailed view, the playlist order and Now Playing.Checked
check.shpasses inorg.kde.Sdk//6.11, with all 3 tests. New tests cover the column values from tags and from file names, the longest values, sorting by a role inSearchFilterModel, resuming the queue, clearing it, and queueing next and at the end..forgejo/release-notes.sh 0.5.0prints the notes. The Flatpak builds, installs and reports version 0.5.0.Tested in a nested KWin on a private bus, with the state set through the config files and screenshots:
Dragging, clicking to sort and the menu actions were tested by hand on the installed build.