Some playlist item numbers invisible in browser

Version 3.1.2

In the playout browser, the database playlist item numbers are visible only to ‘9.’ The higher numbers are hidden and show only when the mouse is hovered over them.

Thank you

Regards, Alec M.

Assuming you mean in a Database Playlist pane in the Browser, you need to resize the column heading by dragging the edge of it.



Thanks ;D! Is there a skin.ini entry that could define those widths??

Kindest Regards, Alec M…

Not that I am aware of, no.


I will just make it a bit wider.

Hm, interestingly, on my PC, two digits fit perfectly into the default column width - can you post a screen shot please?

Yes, I’ll post a screen shot the next time I’m near that computer.

Regards, Alec

A little more info: I’ve been thinking and now believe the reason why the digits are hidden in my browser but not in Torben’s is that I modified the size and width of the border in skin.ini. The font is now ‘10’ and the border is now ‘1’
I had forgotten about this modification when I originally posted.

Regardless, I will post my screen shot the next time I can get near the machine.

Regards, Alec M…

[FX: Nods sagely, with irony] Yup, that would do it!

[FX: Kyle from South Park voice] “You know, Alec — I think we’ve all learned something here today. We must always test ALL Browser panes after changing the Browser section of skin.ini. And the same goes for all the other sections as well, like making sure ALL the States of a Player—ON AIR and such— don’t ‘crash into’ other parts of the Player; or that the button size in the Cartwall doesn’t ‘mash’ the buttons when we add 10 more Cartwall Players. …”

But seriously though: it’s easy to miss things like that, and we’ve all done something similar, I’m sure. I know I have, anyway! :smiley:

Of course (and to raise something mentioned several times here), the ideal would be a ‘Player Layout Designer’ which would work like the existing Layout Designer, but purely for laying out the ‘interior’ of a Player. For example, you could move the Player ‘name’ to the bottom right, or have the Progress Bar at the bottom and re-arrange the buttons: things like that.

The icing on the cake would be a Properties dialog for each element (oh, all right then: internal player GUI object), which would allow you to specify text font, size, colour; background colour, etc. for each Player State, as well as a ‘default’ one. Any colour chooser included would ideally allow RGB-in-hex ‘Web’ format colours to be typed in, for us ‘old hands’ who are just used to doing it that way. :smiley:

(I hope that the more enlightened of you can see where this is leading?)

Much of this might be possible by superclassing something like the Screen Object configuration tabs; or maybe there is some ‘editable object properties inspector’ type of component available for Delphi (or relatively easily created using Virtual Treeview, for example?).

You might also have separate ‘layout designers’ for the Cartwall Players, Extra PFL Player (if that survives in its present form), Playlist (up to a point: not much you can change except column widths and order, plus fonts and colours of the Treeview component, like DropTargetBar if I recall the name correctly), and yes: for the Browser. All changes saved from these new ‘GUI designers’ would be written back to skin.ini (cf. the Layout Designer and position.ini), earning you the undying and genuine gratitude of everyone who’s ever known the simultaneous joy and pain that is wrestling with skin.ini manually.



Thanks! Yes, it’s often easy to overlook the basics, just as I did ;D I absolutely should have tested before I posted, especially since the problem started after I made the changes…

Now that we can modify the items within the browser (font), it would be nice if perhaps we could define column widths… For now, I’ll drag the column to the correct width.

Thanks again… I promise to test before I post :slight_smile:

Best Regards, Alec…

Cad, regarding your suggestions, I do think a configurable player layout would be nice - there are some limiting factors, however. For example, one thing that keeps me from making the player GUI objects into Delphi forms with TLabel components (that could easily be moved around) is that the player name, the player state and the current position have different font sizes, but need to be displayed aligned to each other at their baseline. This is not possible with three separate label components, so there will always be some manual drawing involved, which makes a custom layout much more complicated.

I don’t mean to sound stupid, but why do those three objects NEED to be aligned by baseline? Is this a programming issue, or is there some other reason, like ‘to make sure they all appear above the progress bar?’ Or is it simply that those three items are at the moment a single TLabel component? :wink:

Because I could easily imagine someone wanting (for example) to have the player name at top left, progress bar below that, then title/artist just below that at the left, with State at the right of title/artist (for example).

Anyone wanting a custom ‘internal’ Player layout would then be taking on the responsibility for ensuring that no ‘internal’ components overlap or ‘crash into’ each other, if that is what you are concerned about.


At the moment, all elements of the player GUI are drawn manually.

I’m planning re-implement the player GUI so that it uses the automatic layout mechanisms Delphi offers through the Align property, which allows you to specify the relative position of an element within the form. For most of the elements, we can use a vertical alignment using alTop and alBottom.

  • Title: Align=alTop
  • Artist: Align=alTop (below the title)
  • Button bar: Align=alBottom
  • Progress bar: Align=alBottom (above the button bar)

Now what about the Name, State and Time labels? They need to be aligned horizontally to each other. So we first insert a container (invisible panel) that takes up all the space (alClient) between the Artist label and progress bar. Inside that container, the labels are aligned as follows:

  • Name: Align=alLeft
  • State: Align=alLeft (next to the name)
  • Time: Align=alRight

This would work perfectly if all three labels were using the same font, which is typically not the case. I’m attaching a screen shot that demonstrates what happens when you try to align three labels with different font sizes this way: Their vertical position is totally screwed up. That’s because Delphi takes the entire font size into account, including a possible descender.

The only solution to this problem is to draw the three labels manually within the container, aligning them at their baseline. Pretty much like the current player object does.

Talking about a custom player layout, this issue is of course not a show-stopper. But it makes this more complicated, because these three labels need to be handled in a special way.