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.
85 lines
2.9 KiB
Go
85 lines
2.9 KiB
Go
package main
|
|
|
|
import (
|
|
"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"
|
|
"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"
|
|
"golang.org/x/text/language"
|
|
)
|
|
|
|
var application kernel.AppContract
|
|
var ffPathUtilities *kernel.FFPathUtilities
|
|
|
|
func init() {
|
|
iconResource, _ := fyne.LoadResourceFromPath("icon.png")
|
|
appMetadata := &fyne.AppMetadata{
|
|
ID: "net.kor-elf.projects.gui-for-ffmpeg",
|
|
Name: "GUI for FFmpeg",
|
|
Version: "0.9.0",
|
|
Icon: iconResource,
|
|
}
|
|
|
|
localizerService, err := kernel.NewLocalizer("languages", language.Russian)
|
|
if err != nil {
|
|
kernel.PanicErrorLang(err, appMetadata)
|
|
return
|
|
}
|
|
|
|
ffPathUtilities = &kernel.FFPathUtilities{FFmpeg: "", FFprobe: "", FFplay: ""}
|
|
convertorService := kernel.NewService(ffPathUtilities)
|
|
ffplayService := kernel.NewFFplay(ffPathUtilities)
|
|
|
|
queue := kernel.NewQueueList()
|
|
application = kernel.NewApp(
|
|
appMetadata,
|
|
localizerService,
|
|
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)
|
|
|
|
localizerRepository := localizer.NewRepository(settingRepository)
|
|
menuView := menu.NewView(application)
|
|
menuSettingView := menu.NewViewSetting(application, themeService)
|
|
mainMenu := handler.NewMenuHandler(application, convertorHandler, menuView, menuSettingView, localizerView, localizerRepository, themeService)
|
|
|
|
mainHandler := handler.NewMainHandler(application, convertorHandler, mainMenu, localizerRepository)
|
|
mainHandler.Start()
|
|
|
|
application.GetWindow().SetMainMenu(mainMenu.GetMainMenu())
|
|
application.GetWindow().ShowAndRun()
|
|
}
|