Версия 1.0.0 #11

Merged
kor-elf merged 41 commits from develop into main 2025-06-14 22:56:20 +05:00
Showing only changes of commit df8095fb16 - Show all commits

View File

@ -18,19 +18,33 @@ import (
"path/filepath"
)
type ConvertSetting struct {
DirectoryForSave string
OverwriteOutputFiles bool
Format string
Encoder encoder2.EncoderContract
}
func Convertor(
window window.WindowContract,
addFileForConversion func(file ffmpeg.File),
directoryForSavingPath string,
directoryForSaving func(path string),
formats encoder.ConvertorFormatsContract,
addToConversion func(convertSetting ConvertSetting) error,
) fyne.CanvasObject {
conversionMessage := canvas.NewText("", color.RGBA{R: 255, G: 0, B: 0, A: 255})
conversionMessage.TextSize = 16
conversionMessage.TextStyle = fyne.TextStyle{Bold: true}
form := newFormConvertor(
window,
addFileForConversion,
directoryForSavingPath,
directoryForSaving,
formats,
addToConversion,
conversionMessage,
)
converterVideoFilesTitle := lang.L("converterVideoFilesTitle")
@ -38,8 +52,9 @@ func Convertor(
}
type formConvertor struct {
form *widget.Form
items []*widget.FormItem
form *widget.Form
items []*widget.FormItem
conversionMessage *canvas.Text
window window.WindowContract
addFileForConversion func(file ffmpeg.File)
@ -52,6 +67,8 @@ func newFormConvertor(
directoryForSavingPath string,
directoryForSaving func(path string),
formats encoder.ConvertorFormatsContract,
addToConversion func(convertSetting ConvertSetting) error,
conversionMessage *canvas.Text,
) *formConvertor {
f := widget.NewForm()
f.SubmitText = lang.L("converterVideoFilesSubmitTitle")
@ -61,6 +78,7 @@ func newFormConvertor(
window: window,
addFileForConversion: addFileForConversion,
directoryForSaving: directoryForSaving,
conversionMessage: conversionMessage,
}
fileForConversion := formConvertor.newFileForConversion()
@ -109,11 +127,50 @@ func newFormConvertor(
formConvertor.changeEncoder(selectEncoder.Encoder)
selectEncoder.ChangeEncoder = formConvertor.changeEncoder
formConvertor.form.OnSubmit = func() {
formConvertor.conversionMessage.Text = ""
if len(directoryForSavingButton.path) == 0 {
formConvertor.conversionMessage.Text = lang.L("errorSelectedFolderSave")
return
}
if len(selectEncoder.SelectFormat.Selected) == 0 {
formConvertor.conversionMessage.Text = lang.L("errorSelectedFormat")
return
}
if selectEncoder.Encoder == nil {
formConvertor.conversionMessage.Text = lang.L("errorSelectedEncoder")
return
}
fileForConversion.button.Disable()
directoryForSavingButton.button.Disable()
formConvertor.form.Disable()
err := addToConversion(ConvertSetting{
DirectoryForSave: directoryForSavingButton.path,
OverwriteOutputFiles: isOverwriteOutputFiles,
Format: selectEncoder.SelectFormat.Selected,
Encoder: selectEncoder.Encoder,
})
if err != nil {
formConvertor.conversionMessage.Text = err.Error()
}
fileForConversion.button.Enable()
directoryForSavingButton.button.Enable()
formConvertor.form.Enable()
}
return formConvertor
}
func (f *formConvertor) getForm() *widget.Form {
return f.form
func (f *formConvertor) getForm() fyne.CanvasObject {
return container.NewVBox(
f.form,
container.NewHScroll(f.conversionMessage),
)
}
type fileForConversion struct {