Move the app from C++ to Rust, and fix playlists and drops in the Flatpak #12
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!12
Loading…
Reference in a new issue
No description provided.
Delete branch "rust-migration"
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?
Move from C++ to Rust
The app's code moves from C++ to Rust, built with CXX-Qt and Corrosion. The QML interface and the CMake build stay. The Rust QObjects form their own QML module,
StrawlyMusic.Library.In Rust now:
C++ remains where CXX-Qt has no way into Qt:
main.cpp, which needsQApplicationfor the Plasma style, the cover image provider, and three small headers forQSettings, Qt Multimedia and the proxy model's source model.User-visible changes are listed in
CHANGELOG.mdunder Unreleased. Names now sort the same in every language, tags without a standard name are no longer searched, and MP3 lengths can be a fraction of a second longer.Fixes
Build, licenses and docs
cargo-sources.json.LICENSES/rust-crates.txtlists the 77 crates compiled into the app with their copyright holders, and matchescargo treefor the linked crates. Kirigami's LGPL-2.0-or-later text is added.buildtoTest and package, so the required check in the branch protection formainneeds the new name.Checked
In
org.kde.Sdk//6.11: the Rust unit tests and the two C++ suites pass, and clippy, rustfmt and qmllint are clean. The Flatpak builds offline and was tested by hand on Plasma 6 (Wayland): playlists, search, editing, drops, outside edits, playback, the media controls and the tray.