Milkshiift / GoofCord

:shield: Take control of your Discord experience with GoofCord – a highly configurable and privacy minded discord client.
Open Software License 3.0
178 stars 7 forks source link

[BUG] Input fields losing value after settings close #36

Closed cd-FileX closed 1 month ago

cd-FileX commented 1 month ago

Description

Any value written into the input fields in the goofcord settings will be lost once the settings window is closed.

Steps to Reproduce

  1. Open Goofcord settings
  2. Enter a value into e.g. Encryption password
  3. Close the settings
  4. Reopen settings

Expected Behavior

Automatically saved or per button (warning)

Actual Behavior

Discarded

Screenshots

Environment

Additional Information

Milkshiift commented 1 month ago

Do you click out of input fields?

cd-FileX commented 1 month ago

Thought I did it but seems I did not. Still, the enc. password is not saved, which I guess would be again related to another already existing issue?

Also, it would be good to have the settings being saved without unfocusing the window.

Milkshiift commented 1 month ago

I'm not sure if saving text fields when for example a new character is typed is a good solution. Saving settings is a heavy operation because of writing to disk, and I would imagine that on a slower machine, previous field state would not have enough time to save before the next character is typed, causing race conditions. Settings saving also has feedback in the form of titlebar flashing. If the feedback was not there, the user knows their settings weren't saved. That's the intention, at least. I think that with the titlebar flashing, the current implementation is intuitive enough.

See https://github.com/Milkshiift/GoofCord/issues/33 for encryption passwords not saving.

cd-FileX commented 1 month ago

You could wait a specific duration if new input was made and then save. There is a structure with a timer for this but you would have to quickly search for it.

Also, if the encryption password was not saved or another unexpected thing happened, showing the user something went wrong would be good.