Oh, this gets more and more interesting. I can now replicate this error. I don't have a clue about where it's coming from, but Laza will need to try this:
Save the attached .jap file on your PC. In fact, put it in an otherwise empty directory.
File > Open Project, and open this project file.
Take a look at Projector > Lightbox > Main image > Slideshow delay
I have no idea where the 3 seconds is coming from. It's not the skin default, and it's not in the .jap file anywhere.
(Also, my default skin is Neptune, and it doesn't have a variable with the same name, so no cross-contamination possible there.)
ETA: Laza, just a wild hunch, but I recall running into weird problems with setting up JSpinners with non-integer values. For the last few years, I've simply avoided them entirely. A slideshow delay setting certainly doesn't need anything more precise than whole seconds.
I also tried the following....
You can stop experimenting now. As you can see from what I just posted, I've boiled this down to a very simple test case, with no saved default files involved at all. There's certainly nothing you can do about it for now, other than to remember that every time you open a saved project, reset the time before making the album!
I had a lot of trouble even with JComboBoxes with integer values. The only way to make them work is by defining the values as String in GUI, and defining the value as int in the SkinModel. For float values, there's no solution besides offering only a few available options. I hate Java in this regard. They were so anal about type conversions they fucked up even the simplest ones.
I've spent enough time in JSpinner Purgatory™ to know how to stay out of trouble. For integers, a JSpinner is great - easy for the user, and you never have to error-check the return value. For anything else, they're awful. A JComboBox is great for giving a choice of text values. For anything else, they're awful.
For slideshow timing, I'd just give the user whole seconds. If you want to give them more granularity, give them a spinner in milliseconds, with something like SpinnerNumberModel(4000, 2000, 9000, 500). The 500 interval makes it easier for the user. But if he wants the slideshow timing to be ridiculously precise, he can enter 5637ms! Just remember to do your own /1000f, or the slideshow will never end.
That one does seem to behave itself. I have a recollection of running into problems at the max and min values of the range, but the details escape me now. It might have been a problem when using float values, rather than double.
This was several years ago, during one of my lost decades.
Will you fix this issue by changing the slideshow time using an integer input?
One possible issue for such design change is obviously the retro compatibility with existing albums. To me, a selection by seconds is good enough; it has also the advantage to secure the retro compatibility by rounding (or truncing) the already saved value in existing albums.
What is strange anyway, is that this issue should potentially occur in multiple places in different skins? So what is specific to this slide show duration value?