jdmonin / JSettlers2

Java Settlers project home, downloads, and GPLv3 source code. To download the latest version as a JAR, see https://github.com/jdmonin/JSettlers2/releases/latest .
http://nand.net/jsettlers/
GNU General Public License v3.0
160 stars 63 forks source link

Tile sets cannot be changed #110

Open lpassey opened 1 month ago

lpassey commented 1 month ago

Running main on my new Windows 11 laptop I cannot change the tile set to "classic" (my preferred). Running main on my (relatively) new Windows 11 desktop, on which I had run previous versions and had selected the "classic" tile set, the user preferences were detected, but I could not change them back to pastel. Just in case it was a rights issue I ran both programs again "as administrator" (superuser) with no difference. This behavior occurred both when selected from the NewGameOptionFrame, and from the game options popup. I suspect the bug is in persistLocalPrefs(), but that has not been confirmed.

I've not yet run the program on Win7 or Ubuntu, to see if the problem is OS-specific; that will happen this afternoon.

lpassey commented 1 month ago

OK, found the problem. There is no event listener attached to the JCheckBox, only one attached to the associated label. So, clicking on the checkbox changes the appearance on the screen, but has no other effect. Clicking on the associate label changes the checkbox value /and/ stores the new user preference. IMO, the listener should be attached to the checkbox as well as the label.

jdmonin commented 1 month ago

Oh, good find. Thanks, I'll take a look this week

lpassey commented 1 month ago

I pushed a fix a couple of days ago. Simple problem, clicking on the label worked but not the checkbox itself. I just added a change listener to the checkbox.

On August 11, 2024 8:21:42 AM PDT, Jeremy Monin @.***> wrote:

Oh, good find. Thanks, I'll take a look this week

-- Reply to this email directly or view it on GitHub: https://github.com/jdmonin/JSettlers2/issues/110#issuecomment-2282795048 You are receiving this because you authored the thread.

Message ID: @.***>