36 lines
638 B
Go
36 lines
638 B
Go
|
//go:build !js && !wasm && !test_web_driver
|
||
|
// +build !js,!wasm,!test_web_driver
|
||
|
|
||
|
package app
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"io"
|
||
|
"os"
|
||
|
|
||
|
"fyne.io/fyne/v2"
|
||
|
)
|
||
|
|
||
|
func (s *settings) load() {
|
||
|
err := s.loadFromFile(s.schema.StoragePath())
|
||
|
if err != nil && err != io.EOF { // we can get an EOF in windows settings writes
|
||
|
fyne.LogError("Settings load error:", err)
|
||
|
}
|
||
|
|
||
|
s.setupTheme()
|
||
|
}
|
||
|
|
||
|
func (s *settings) loadFromFile(path string) error {
|
||
|
file, err := os.Open(path) // #nosec
|
||
|
if err != nil {
|
||
|
if os.IsNotExist(err) {
|
||
|
return nil
|
||
|
}
|
||
|
return err
|
||
|
}
|
||
|
defer file.Close()
|
||
|
decode := json.NewDecoder(file)
|
||
|
|
||
|
return decode.Decode(&s.schema)
|
||
|
}
|