Juk

From KDE Community Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 Nuke setPlaying
  • Singleton history/upcoming playlist
  • Make TrackSequenceManager use proxy model


This is being done in the nokde3 branch in git.