Added an action to the submit button.
This commit is contained in:
parent
e48f363de0
commit
df8095fb16
@ -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")
|
||||
@ -40,6 +54,7 @@ func Convertor(
|
||||
type formConvertor struct {
|
||||
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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user