Today I worked on the playlist header, a small control that determines how much information the queue can show.

Fibich already has a playlist, but a playlist only becomes comfortable once it can carry useful information. Track names alone are not enough. A useful music player needs room for title, artist, album, duration, maybe format-related details later, and the user should not feel trapped by whatever column width the app happens to choose.

So today the playlist header starts becoming more flexible. It now has slidable dividers, which means the visible columns can be resized. Even better, those values are persisted, so the app can remember the layout instead of resetting it every time.

When the user adjusts the interface, Fibich should remember the choice.

There was also a bit of cleanup around playlist sorting. Some of the sorting work started in the library browser, but the playlist has different needs. A library browser is hierarchical; a playlist is more like an ordered listening queue. Reusing the same ideas too directly would make the code convenient for a moment and awkward later.

Today's work separates the two concepts. The expandable library list now has its own implementation, and playlist sorting can follow the needs of an ordered queue. The first version shared too much code because both views initially looked alike. Their different jobs became clear as they grew.

A playlist row has a different role from a library row. It represents playback order, selection, future queue actions, and eventually more advanced behavior like reordering or multiple playlist management. The code needs to leave space for that.

There is also a new structure around parent folder information, which helps keep library items understandable without forcing every view to know too much about how the library is arranged. That matters because Fibich keeps moving between two views of music: the library as stored on disk, and the playlist as chosen for listening.

The result is practical.

The playlist is becoming more readable. The columns can breathe. The app remembers user adjustments. And the code is a little less confused about the difference between browsing a music library and managing a listening queue.

I want Fibich to keep improving the everyday listening workflow as its feature set grows.