Refactor application structure and initialize core components
I decided to rewrite the program taking into account the experience gained.
This commit is contained in:
79
main.go
79
main.go
@@ -1,76 +1,29 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"fyne.io/fyne/v2"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/convertor"
|
||||
error2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/error"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/handler"
|
||||
"fyne.io/fyne/v2/app"
|
||||
"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/controller"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/resources"
|
||||
"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/setting"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/theme"
|
||||
)
|
||||
|
||||
var application kernel.AppContract
|
||||
var ffPathUtilities *kernel.FFPathUtilities
|
||||
|
||||
func init() {
|
||||
appMetadata := &fyne.AppMetadata{
|
||||
func main() {
|
||||
appMetadata := fyne.AppMetadata{
|
||||
ID: "net.kor-elf.projects.gui-for-ffmpeg",
|
||||
Name: "GUI for FFmpeg",
|
||||
Version: "0.9.0",
|
||||
Icon: resources.IconAppLogoResource(),
|
||||
}
|
||||
|
||||
ffPathUtilities = &kernel.FFPathUtilities{FFmpeg: "", FFprobe: "", FFplay: ""}
|
||||
convertorService := kernel.NewService(ffPathUtilities)
|
||||
ffplayService := kernel.NewFFplay(ffPathUtilities)
|
||||
|
||||
queue := kernel.NewQueueList()
|
||||
application = kernel.NewApp(
|
||||
appMetadata,
|
||||
queue,
|
||||
ffplayService,
|
||||
convertorService,
|
||||
)
|
||||
}
|
||||
|
||||
func main() {
|
||||
errorView := error2.NewView(application)
|
||||
|
||||
settingRepository := setting.NewRepository(application.GetAppFyne())
|
||||
settingDirectoryForSaving := setting.NewSettingDirectoryForSaving(settingRepository)
|
||||
|
||||
convertorRepository := convertor.NewRepository(settingRepository)
|
||||
ffPathUtilities.FFmpeg = convertorRepository.GetPathFfmpeg()
|
||||
ffPathUtilities.FFprobe = convertorRepository.GetPathFfprobe()
|
||||
ffPathUtilities.FFplay = convertorRepository.GetPathFfplay()
|
||||
|
||||
application.RunConvertor()
|
||||
defer application.AfterClosing()
|
||||
|
||||
localizerView := localizer.NewView(application)
|
||||
convertorView := convertor.NewView(application)
|
||||
itemsToConvertService := kernel.NewItemsToConvert(
|
||||
application.GetWindow().GetLayout().GetRightTabs().GetAddedFilesContainer(),
|
||||
application.GetFFplayService(),
|
||||
application.GetLocalizerService(),
|
||||
)
|
||||
convertorHandler := handler.NewConvertorHandler(application, convertorView, errorView, convertorRepository, settingDirectoryForSaving, itemsToConvertService)
|
||||
|
||||
themeRepository := theme.NewRepository(settingRepository)
|
||||
themeService := theme.NewTheme(application, themeRepository)
|
||||
|
||||
menuView := menu.NewView(application)
|
||||
menuSettingView := menu.NewViewSetting(application, themeService)
|
||||
mainMenu := handler.NewMenuHandler(application, convertorHandler, menuView, menuSettingView, localizerView, themeService)
|
||||
|
||||
mainHandler := handler.NewMainHandler(application, convertorHandler, mainMenu)
|
||||
mainHandler.Start()
|
||||
|
||||
application.GetWindow().SetMainMenu(mainMenu.GetMainMenu())
|
||||
application.GetWindow().ShowAndRun()
|
||||
app.SetMetadata(appMetadata)
|
||||
fyneApp := app.New()
|
||||
progressBarService := application.NewProgressBar()
|
||||
appSetting := setting.NewSetting(fyneApp)
|
||||
ffmpegService := ffmpeg.NewUtilities(appSetting)
|
||||
myApp := application.NewApp(fyneApp, appSetting, progressBarService, ffmpegService)
|
||||
mainController := controller.NewController(myApp)
|
||||
mainController.Start()
|
||||
myApp.Run()
|
||||
}
|
||||
|
Reference in New Issue
Block a user