Refactor application structure and initialize core components
I decided to rewrite the program taking into account the experience gained.
This commit is contained in:
8
internal/controller/convertor.go
Normal file
8
internal/controller/convertor.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package controller
|
||||
|
||||
import "git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/gui/view"
|
||||
|
||||
func (c *controller) convertor() {
|
||||
content := view.Convertor()
|
||||
c.window.SetContent(content)
|
||||
}
|
16
internal/controller/error.go
Normal file
16
internal/controller/error.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application/setting"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/gui/view"
|
||||
)
|
||||
|
||||
func (c *controller) startWithError(err error) {
|
||||
languages := c.app.GetSetting().GetLanguages()
|
||||
|
||||
content := view.StartWithError(err, languages, func(lang setting.Lang) {
|
||||
_ = setting.ChangeLang(lang)
|
||||
c.startWithError(err)
|
||||
})
|
||||
c.window.SetContent(content)
|
||||
}
|
64
internal/controller/main.go
Normal file
64
internal/controller/main.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application/setting"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/gui/view"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/gui/window"
|
||||
)
|
||||
|
||||
type ControllerContract interface {
|
||||
Start()
|
||||
}
|
||||
|
||||
type controller struct {
|
||||
app application.AppContract
|
||||
window window.MainWindowContract
|
||||
}
|
||||
|
||||
func NewController(app application.AppContract) ControllerContract {
|
||||
fyneWindow := app.FyneApp().NewWindow(app.FyneApp().Metadata().Name)
|
||||
|
||||
return &controller{
|
||||
app: app,
|
||||
window: window.NewMainWindow(fyneWindow, app.GetProgressBarService()),
|
||||
}
|
||||
}
|
||||
|
||||
func (c *controller) Start() {
|
||||
c.window.Show()
|
||||
|
||||
isDefault, err := c.initLanguage()
|
||||
if err != nil {
|
||||
c.startWithError(err)
|
||||
return
|
||||
}
|
||||
|
||||
if isDefault {
|
||||
languages := c.app.GetSetting().GetLanguages()
|
||||
content := view.StartWithoutSupportLang(languages, func(lang setting.Lang) {
|
||||
err = c.app.GetSetting().SetLang(lang)
|
||||
if err != nil {
|
||||
c.startWithError(err)
|
||||
return
|
||||
}
|
||||
c.window.InitLayout()
|
||||
c.verificareaFFmpeg()
|
||||
})
|
||||
c.window.SetContent(content)
|
||||
return
|
||||
}
|
||||
|
||||
c.window.InitLayout()
|
||||
c.verificareaFFmpeg()
|
||||
}
|
||||
|
||||
func (c *controller) verificareaFFmpeg() {
|
||||
c.convertor()
|
||||
}
|
||||
|
||||
func (c *controller) initLanguage() (isDefault bool, err error) {
|
||||
lang, isDefault := c.app.GetSetting().GetCurrentLangOrDefaultLang()
|
||||
err = setting.ChangeLang(lang)
|
||||
return isDefault, err
|
||||
}
|
Reference in New Issue
Block a user