Remove language selection to a new settings section.

This commit is contained in:
2025-05-22 21:42:45 +05:00
parent 883bf376b0
commit 712ec2f182
6 changed files with 127 additions and 7 deletions

View File

@@ -17,6 +17,7 @@ type MenuHandler struct {
app kernel.AppContract
convertorHandler ConvertorHandlerContract
menuView menu.ViewContract
menuViewSetting menu.ViewSettingContract
localizerView localizer.ViewContract
localizerRepository localizer.RepositoryContract
}
@@ -25,6 +26,7 @@ func NewMenuHandler(
app kernel.AppContract,
convertorHandler ConvertorHandlerContract,
menuView menu.ViewContract,
menuViewSetting menu.ViewSettingContract,
localizerView localizer.ViewContract,
localizerRepository localizer.RepositoryContract,
) *MenuHandler {
@@ -32,6 +34,7 @@ func NewMenuHandler(
app: app,
convertorHandler: convertorHandler,
menuView: menuView,
menuViewSetting: menuViewSetting,
localizerView: localizerView,
localizerRepository: localizerRepository,
}
@@ -53,11 +56,11 @@ func (h MenuHandler) getMenuSettings() *fyne.Menu {
quit.Label = text
})
languageSelection := fyne.NewMenuItem(h.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
MessageID: "changeLanguage",
}), h.LanguageSelection)
h.app.GetLocalizerService().AddChangeCallback("changeLanguage", func(text string) {
languageSelection.Label = text
settingsSelection := fyne.NewMenuItem(h.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
MessageID: "settings",
}), h.settingsSelection)
h.app.GetLocalizerService().AddChangeCallback("settings", func(text string) {
settingsSelection.Label = text
})
ffPathSelection := fyne.NewMenuItem(h.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
@@ -69,7 +72,7 @@ func (h MenuHandler) getMenuSettings() *fyne.Menu {
settings := fyne.NewMenu(h.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
MessageID: "settings",
}), languageSelection, ffPathSelection, quit)
}), settingsSelection, ffPathSelection, quit)
h.app.GetLocalizerService().AddChangeCallback("settings", func(text string) {
settings.Label = text
settings.Refresh()
@@ -140,3 +143,22 @@ func (h MenuHandler) LanguageSelection() {
h.convertorHandler.MainConvertor()
})
}
func (h MenuHandler) settingsSelection() {
save := func(setting *menu.SettingForm) error {
err := h.app.GetLocalizerService().SetCurrentLanguage(setting.Language)
if err != nil {
return err
}
_, err = h.localizerRepository.Save(setting.Language.Code)
if err != nil {
return err
}
h.convertorHandler.MainConvertor()
return nil
}
cancel := func() {
h.convertorHandler.MainConvertor()
}
h.menuViewSetting.Main(save, cancel)
}