With the popularity of formatting strings that group albums together, what if there was a UI plugin that could do this while actually being flexible enough to handle it? What I'm envisioning would be almost exactly like the album list, only more flexible and with the playlist interface. Here's an example of what I'm talking about:
-Spoon
-(2002) Kill the Moonlight
01. track 1
02. track 2
03. track 3
+Squarepusher
Sunny Day Real Estate - [Diary #4] Round
Alice in Chains - (1992) - Dirt
-Toadies
-(date) Pleather
01. track 1
02. track 2
03. track 3
+(date) Album B
+(date) Album C
+(date) Album D
And so and so on.
Right-clicking on an upper level (with the +/-) and hitting the context menu would "insert" or "remove" the items under that entry in the playlist, effectively acting like a tree menu currently does, only using the current listbox that the default and Columns UI uses. Double clicking the item plays everything in it, starting with the first track.
Dragging items
This is the tricky part. The way I think it should be done is that bottom level items would become "broken" as they are moved around. Here's an example of what I'm talking about:
-Artist
-Album1
track1
track2
track3
+Album2
Now I were to drag track 2 outside of Album1, it would look like this:
-Artist
Artist - [Album1] track2
-Album1
track1
track3
+Album2
As you can see, track2 is listed using a top-level formatting string, which I'll get to later. Rearranging the items within an category should have no effect on their formatting, but removing said item from that category will give it a top-level formatting string.
Formatting Strings
Naturally, the formatting would be fully customizable using the traditional TAGZ formatting. Syntax-wise it'd be very similar to the Album List formatting, but with a special field added for the +/-'s, say, %_tree% or something like that. Here's an idea of what the example shown would look like:
%_tree% [%artist%]|%_tree% ['('%date%')'] %album%|$num(%tracknumber%,2). %title%
Here's the other part:
Top-Level Formatting
[%artist%]|[%artist% - ]['('%date%')' - ][%title%]|[%artist% - ]['['%album%']' - ][%title%]
Each section of this string corresponds to the above string, so that orphaned tree items display the proper data. If you'll refer back to the top of this thread, you'll notice that the single "Sunny Day Real Estate - Round" has different formatting than, say, the album "Alice in Chains - Dirt."
Issues
1. Getting the whole thing to work is obviously going to require some significant programming work. I can't program worth a damn, thus the "idea" part.
2. Performance. I have no idea if the standard listbox is the best solution, but it seems like the most customizable way to do it. If there's a better method I'd like to hear it, because they probably exist...
3. Implementation. Ideally, this would replace the columns part of the Columns UI, but that level of modularity hasn't been implemented yet. Now this is obviously a temporary issue, and I'm sure that it would work fine just have it as a seperate box or panel for now.