As most of you already know, Lydia and i conducted a little bit of card sorting regarding our horrendous playlist context menu. With the Last.fm service plugin enabled, you have 11 (eleven!) entries in the menu, which of course is entirely unacceptable.
We sat down with a bunch of little sheets of paper on them, with each entry in the menu we have now written on it, and a good lump of other bits of paper and a pen for the participants to write any new ideas they might come up with while sorting the existing items around and such. With no further ado, here are the results of the test, after going through the great amount of data we got out of it. Ten participants took part, most Amarok developers (which of course skews the data fairly nastily), and two non-developers (Wendy and Nuno).
The following are the ten menus that people came up with:
1. Queue Track
Stop Playing After This Track Remove From Playlist Edit Track Details...
2. Stop Playing After This Track
Queue Track Show Under Various Artists Remove From Playlist Service Actions (submenu) Edit Track Details...
3. Remove From Playlist
Stop Playing After This Track Play After Current Track
4. Show Context For This Track
Queue Track Remove From Playlist Edit Track Details... / Fetch Cover (meaning fetching cover is done in dialogue)
5. Queue Track
Play After Current Track Show in Collection Browser Show Context Remove From Playlist Stop Playing After This
6. Queue Track
Stop Playing After This Track Edit Track Details... Remove From Playlist Service Actions (submenu)
7. Remove From Playlist
Queue Track Stop Playing After Track Show in Collection Browser Last.fm: Love
8. Remove From Playlist
Service Actions (submenu) Show Context Play After Current Track Show in Collection Browser Edit Track Details...
9. Remove From Playlist
Edit Track Details... Show Context Cover (submenu) Show Under Various Artists
Last.fm: Love Remove From Playlist Copy To Collection (submenu) Edit Track Details...
The columns in the table below are:
|5||n/a||Stop After This Track|
|10||n/a||Remove From Playlist|
|7||n/a||Edit Track Details...|
|2||n/a||Show Under Various Artists|
|3||2||Service Actions (submenu)|
|3||3||Play After Current Track|
|3||5||Show In Collection Browser|
|1||10||Copy to Collection|
A note on the second to last item. While number 2 came up with the item, only number 9 used it in their menu.
The following are rationalisations taken from comments from the participants during the test, and some conclusions that can be drawn from the suggested menus themselves:
All of this leads to three new menus. The reason we have three is that certain changes to the eventual final version either conflict with our current string freeze, or depend on features that are not available in Amarok 2.1 but will be in 2.2.
The menus below require certain things to happen in Amarok - specifically the Edit Track Details dialogue will have the additional feature of handling covers there. This does not add any new strings, since the same strings can be used to do this as are used in the context menu currently (Fetch Cover, Display Cover and so on). Furthermore, any place the cover is present should be an element where you can interact with the cover (click to display full size, right-click to manage). This can be postponed, though new strings will also not be required for this (same reasoning as before).
The menus for 2.1.1 and 2.2 include an item called "Service Actions *" - this item covers the concept of a conditional submenu. What this means is, if you have more than two items to show from services (Last.fm: Love, Last.fm: Ban, Libre.fm: Love, Libre.fm: Ban, for example), the itemsare put into a submenu called Service Actions. The same is applied here, if a service provides more than two actions, those actions are put into a submenu carrying the service's name. The reason this is not done already in 2.1.0 is that it requires a new string.
And now, the menus: