From Amarok Wiki

Levels in the PlaylistBrowser

  1. Category (Dynamic, "My Playlist", Podcasts, ...)
  2. Provider (Local, iPod, mp3Tunes, ...)
  3. Group (manual created groups for playlists)
    this one can be multiple "stages" deep when a group is child of another group
  4. The Playlists itself
  5. The Tracks or settings (as for Dynamic Playlists)

note: We could add one level above this (Level 0) for Collection, Services and files to have an even more generic Browser UI

Options for displaying those levels

Before we can select any of those levels we need to present them, I see 3 options:

  • A Tree (must show at least 2 levels to make sense)
  • A click-through selection UI (like the application tab in kickoff - the KDE4 launcher)
    This can be made with ListViews
  • A custom widget (like the toolbox used for selecting the playlist category in Amarok 2.0)

All of these can show multiple levels.

The 1.4 playlistbrowser uses a treeview for all levels.Image:Amarok1.4_PlaylistBrowser.png
Amarok 2.0 uses a custom for the category, treeview for all the rest except Dynamic. UserPlaylist don't show any tracks, while the podcasts have them in the same treeview as the channel.Image:Amarok2.0_PlaylistBrowser.png

Proposed UI for PlaylistBrowser in 2.1

Level 1: Playlist Category: Custom view based on QToolBox.
Level 2: Playlist Provider: Buttons next to the labels in the QToolBox to toggle the Providers visibility.
Level 3 & 4: Groups and playlists: a treeview with a normal Qt ItemModel.

Each category will have it's own delegate for the items and each provider a settings widget. See mockup.

Level 5: The Meta::Playlist contents: Click-though which leads to a custom view specific to the category.

For UserPlaylists the view (and part of the model) from The Playlist should be used.
Dynamic Playlists can not show items but will present the configuration widget.

Mockup for Podcast Category:
mockup