Replaced bbolt-based database handling with Fyne built-in preferences for storing application settings. Deleted migration logic, database initialization, and error handling related to bbolt, simplifying the codebase and reducing external dependencies.
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package error
|
|
|
|
import (
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/lang"
|
|
"fyne.io/fyne/v2/widget"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/kernel"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/localizer"
|
|
"github.com/nicksnyder/go-i18n/v2/i18n"
|
|
)
|
|
|
|
type ViewContract interface {
|
|
PanicError(err error)
|
|
}
|
|
|
|
type View struct {
|
|
app kernel.AppContract
|
|
isSetLanguage bool
|
|
}
|
|
|
|
func NewView(app kernel.AppContract) *View {
|
|
return &View{
|
|
app: app,
|
|
isSetLanguage: true,
|
|
}
|
|
}
|
|
|
|
func (v View) PanicError(err error) {
|
|
if v.isSetLanguage {
|
|
v.isSetLanguage = false
|
|
_ = v.app.GetLocalizerService().SetCurrentLanguageByCode(lang.SystemLocale().LanguageString())
|
|
}
|
|
|
|
messageHead := v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
|
MessageID: "error",
|
|
})
|
|
|
|
v.app.GetWindow().SetContent(container.NewBorder(
|
|
container.NewVBox(
|
|
widget.NewLabel(messageHead),
|
|
widget.NewLabel(err.Error()),
|
|
),
|
|
nil,
|
|
nil,
|
|
nil,
|
|
localizer.LanguageSelectionForm(v.app.GetLocalizerService(), func(lang kernel.Lang) {
|
|
v.PanicError(err)
|
|
}),
|
|
))
|
|
}
|