Juk: Difference between revisions

From KDE Community Wiki
(we need to do sorting)
(update IRC and git repo)
 
(16 intermediate revisions by one other user not shown)
Line 1: Line 1:
JuK is a lightweight music organizer and player.
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 Freenode).
__TOC__


It is in git: http://quickgit.kde.org/index.php?p=juk.git&a=summary
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==
==TODO/Wishlist==
Line 16: Line 18:
* Fadeout on stop
* Fadeout on stop
* Port from libtunepimp to libmusicbrainz
* Port from libtunepimp to libmusicbrainz
* Duplicate cleaning
* Various Artist albums
* Right click -> properties


==Porting plan==
==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''' Move stuff around so it's more logically organized.
* '''done''' Make Playlist not depend on K3ListView.
* '''done''' Make Playlist not depend on K3ListView.
* '''done''' Make the playlist subclasses not depend on k3listview.
* '''done''' Make the playlist subclasses not depend on k3listview.
* '''done''' Make a custom QHeaderView
* '''done''' Make a custom QHeaderView
* Sorting
* '''done''' Sorting
* Port PlaylistBox and TrackPickerDialog away from K3ListView.
* Port PlaylistBox and TrackPickerDialog away from K3ListView.
* Move view functionality commented out from playlist class into custom qlistview class.
* Move view functionality commented out from playlist class into custom qlistview class.
* Use a proxymodel for the search, drop the playlist search.
* Use a proxymodel for the search, drop the PlaylistSearch class.
* Make the search playlist types proxymodels.
** 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.
* Remove PlaylistInterface class in favour of plain old QObject signals and slots.
* Store just PlaylistItem::Datas in the Playlist, drop PlaylistItem.
* '''done''' Store just PlaylistItem::Datas in the Playlist, drop PlaylistItem.
** Move TrackSequenceManager away from PlaylistItem
** '''done''' Move TrackSequenceManager away from PlaylistItem
** Find other classes that use PlaylistItem
*** reimplement random stuff without the playlistsearch stuff
** Port everything to use Playlist directly
** '''done''' Find other classes that use PlaylistItem
** Nuke createItem
** '''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.
This is being done in the [http://quickgit.kde.org/index.php?p=juk.git&a=shortlog&h=refs/heads/nokde3 '''nokde3'''] branch in git.

Latest revision as of 20:04, 18 June 2021

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.