Juk
JuK is a lightweight music organizer and player.
If you want to do something, please talk with mpyne or sandsmark on IRC (in the #kde-multimedia channel on Libera Chat).
It is in git: https://invent.kde.org/multimedia/juk
TODO/Wishlist
- Port away from k3listview (see below).
- CD playback.
- Clickable items in playlists (like the clickable on currently playing item, only for all items in list).
- Visualization (yes, I want bling).
- Mobile device synchronization.
- QML/mobile interface.
- Settings dialog
- "Stop after current song"
- Fadeout on stop
- Port from libtunepimp to libmusicbrainz
- Duplicate cleaning
- Various Artist albums
- Right click -> properties
Porting plan
Because of JuK's architecture, it's more of a partial rewrite, but whatever.
- done Move stuff around so it's more logically organized.
- done Make Playlist not depend on K3ListView.
- done Make the playlist subclasses not depend on k3listview.
- done Make a custom QHeaderView
- done Sorting
- Port PlaylistBox and TrackPickerDialog away from K3ListView.
- Move view functionality commented out from playlist class into custom qlistview class.
- Use a proxymodel for the search, drop the PlaylistSearch class.
- PlaylistSearch is often used for setting stuff for an entire album/artist, rather use specialized functions (QModelIndexList getAlbum/getArtist or something) in Playlist
- Remove PlaylistInterface class in favour of plain old QObject signals and slots.
- done Store just PlaylistItem::Datas in the Playlist, drop PlaylistItem.
- done Move TrackSequenceManager away from PlaylistItem
- reimplement random stuff without the playlistsearch stuff
- done Find other classes that use PlaylistItem
- done Port everything to use Playlist directly
- done Nuke createItem
- Move file scanning to playlistcollection or something
- done Move TrackSequenceManager away from PlaylistItem
- done Nuke setPlaying
- Singleton history/upcoming playlist
- Make TrackSequenceManager use proxy model
This is being done in the nokde3 branch in git.