Add theme management functionality to the application

Implemented a theme management system allowing users to select and persist themes (default, light, dark) in the settings menu.
This commit is contained in:
2025-05-23 20:18:05 +05:00
parent 712ec2f182
commit 82167f042f
8 changed files with 270 additions and 10 deletions

View File

@@ -5,6 +5,7 @@ import (
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/kernel"
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/localizer"
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/menu"
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/theme"
"github.com/nicksnyder/go-i18n/v2/i18n"
)
@@ -20,6 +21,7 @@ type MenuHandler struct {
menuViewSetting menu.ViewSettingContract
localizerView localizer.ViewContract
localizerRepository localizer.RepositoryContract
themeService theme.ThemeContract
}
func NewMenuHandler(
@@ -29,6 +31,7 @@ func NewMenuHandler(
menuViewSetting menu.ViewSettingContract,
localizerView localizer.ViewContract,
localizerRepository localizer.RepositoryContract,
themeService theme.ThemeContract,
) *MenuHandler {
return &MenuHandler{
app: app,
@@ -37,6 +40,7 @@ func NewMenuHandler(
menuViewSetting: menuViewSetting,
localizerView: localizerView,
localizerRepository: localizerRepository,
themeService: themeService,
}
}
@@ -154,6 +158,12 @@ func (h MenuHandler) settingsSelection() {
if err != nil {
return err
}
err = h.themeService.SetCurrentTheme(setting.ThemeInfo)
if err != nil {
return err
}
h.convertorHandler.MainConvertor()
return nil
}