ralph-irving / squeezeplay

Squeezeplay software player for Lyrion Music Server.
https://sourceforge.net/projects/lmsclients/files/squeezeplay/
50 stars 14 forks source link

double click Now Playing applet to cycle skins #16

Closed kerneljake closed 12 months ago

kerneljake commented 1 year ago

This patch fixes one of my biggest annoyances with Squeezeplay: a single click within the Now Playing applet cycles the visualizer skins. Squeezeplay’s user interface behavior is unique in that clicking on the main “page” of the app completely changes the way the app looks. This can be very frustrating when all you want to do is click on the app to acquire input focus. If the app is already in the foreground, the skin changes when you click on it, and now you have to cycle through the skins to get it back to what you want it to be. This forces you to treat Squeezeplay gingerly by having to remember to click on the title bar carefully or else you have to cycle through the skins.

This patch changes the Now Playing applet behavior so that a double click is required to change the skin. This allows you to safely get input focus by clicking on the app while retaining the ability to change the Now Playing skin if you really want to.

It’s true you can work around this issue by going into Settings → Screen → Now Playing → Now Playing Views and deselecting all but the one skin you care about, but that’s a lot of clicking, and most people won’t know that they have to do that. It also limits what skins are available, so if you ever wanted to briefly look at another visualizer, you would have to navigate through all those settings screens again.

Tested on macOS 10.13.6 and 13.6.

ralph-irving commented 1 year ago

Sorry, I can't accept this PR in it's current form as it changes a default behaviour of squeezeplay, jivelite and the touch player that everyone who has used the squeezebox ecosystem in the last 13 years will be familiar with. Perhaps you could make the double click an option that can be enabled from the Settings->Screen->Now Playing menu?

kerneljake commented 1 year ago

I updated the PR to use menu configuration for double click while preserving the previous order of menu items. This was also an opportunity to make the time interval configurable since I can envision not everyone will want the standard 500 ms value.

I left the language tokens in EN since it appears it will work as a fallback when other languages are selected. I considered translating the strings using Google Translate, but I would feel better if a native speaker did it. There are idioms like "mode" versus "function", etc., and I wanted to avoid the classic problem where strings like "out of sight, out of mind" get translated to "invisible idiot". I used SI units for time to reduce translation requirements.

ralph-irving commented 1 year ago

Thank you for making the changes. Unfortunately, I'm away until the last week of October, so I won't be able to try it out until then. I hope this will be a nice addition to the touch firmware in the future as well.