settings_file.go 638 B

1234567891011121314151617181920212223242526272829303132333435
  1. //go:build !js && !wasm && !test_web_driver
  2. // +build !js,!wasm,!test_web_driver
  3. package app
  4. import (
  5. "encoding/json"
  6. "io"
  7. "os"
  8. "fyne.io/fyne/v2"
  9. )
  10. func (s *settings) load() {
  11. err := s.loadFromFile(s.schema.StoragePath())
  12. if err != nil && err != io.EOF { // we can get an EOF in windows settings writes
  13. fyne.LogError("Settings load error:", err)
  14. }
  15. s.setupTheme()
  16. }
  17. func (s *settings) loadFromFile(path string) error {
  18. file, err := os.Open(path) // #nosec
  19. if err != nil {
  20. if os.IsNotExist(err) {
  21. return nil
  22. }
  23. return err
  24. }
  25. defer file.Close()
  26. decode := json.NewDecoder(file)
  27. return decode.Decode(&s.schema)
  28. }