Added an action to the submit button.
This commit is contained in:
parent
e48f363de0
commit
df8095fb16
@ -18,19 +18,33 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ConvertSetting struct {
|
||||||
|
DirectoryForSave string
|
||||||
|
OverwriteOutputFiles bool
|
||||||
|
Format string
|
||||||
|
Encoder encoder2.EncoderContract
|
||||||
|
}
|
||||||
|
|
||||||
func Convertor(
|
func Convertor(
|
||||||
window window.WindowContract,
|
window window.WindowContract,
|
||||||
addFileForConversion func(file ffmpeg.File),
|
addFileForConversion func(file ffmpeg.File),
|
||||||
directoryForSavingPath string,
|
directoryForSavingPath string,
|
||||||
directoryForSaving func(path string),
|
directoryForSaving func(path string),
|
||||||
formats encoder.ConvertorFormatsContract,
|
formats encoder.ConvertorFormatsContract,
|
||||||
|
addToConversion func(convertSetting ConvertSetting) error,
|
||||||
) fyne.CanvasObject {
|
) 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(
|
form := newFormConvertor(
|
||||||
window,
|
window,
|
||||||
addFileForConversion,
|
addFileForConversion,
|
||||||
directoryForSavingPath,
|
directoryForSavingPath,
|
||||||
directoryForSaving,
|
directoryForSaving,
|
||||||
formats,
|
formats,
|
||||||
|
addToConversion,
|
||||||
|
conversionMessage,
|
||||||
)
|
)
|
||||||
|
|
||||||
converterVideoFilesTitle := lang.L("converterVideoFilesTitle")
|
converterVideoFilesTitle := lang.L("converterVideoFilesTitle")
|
||||||
@ -40,6 +54,7 @@ func Convertor(
|
|||||||
type formConvertor struct {
|
type formConvertor struct {
|
||||||
form *widget.Form
|
form *widget.Form
|
||||||
items []*widget.FormItem
|
items []*widget.FormItem
|
||||||
|
conversionMessage *canvas.Text
|
||||||
|
|
||||||
window window.WindowContract
|
window window.WindowContract
|
||||||
addFileForConversion func(file ffmpeg.File)
|
addFileForConversion func(file ffmpeg.File)
|
||||||
@ -52,6 +67,8 @@ func newFormConvertor(
|
|||||||
directoryForSavingPath string,
|
directoryForSavingPath string,
|
||||||
directoryForSaving func(path string),
|
directoryForSaving func(path string),
|
||||||
formats encoder.ConvertorFormatsContract,
|
formats encoder.ConvertorFormatsContract,
|
||||||
|
addToConversion func(convertSetting ConvertSetting) error,
|
||||||
|
conversionMessage *canvas.Text,
|
||||||
) *formConvertor {
|
) *formConvertor {
|
||||||
f := widget.NewForm()
|
f := widget.NewForm()
|
||||||
f.SubmitText = lang.L("converterVideoFilesSubmitTitle")
|
f.SubmitText = lang.L("converterVideoFilesSubmitTitle")
|
||||||
@ -61,6 +78,7 @@ func newFormConvertor(
|
|||||||
window: window,
|
window: window,
|
||||||
addFileForConversion: addFileForConversion,
|
addFileForConversion: addFileForConversion,
|
||||||
directoryForSaving: directoryForSaving,
|
directoryForSaving: directoryForSaving,
|
||||||
|
conversionMessage: conversionMessage,
|
||||||
}
|
}
|
||||||
|
|
||||||
fileForConversion := formConvertor.newFileForConversion()
|
fileForConversion := formConvertor.newFileForConversion()
|
||||||
@ -109,11 +127,50 @@ func newFormConvertor(
|
|||||||
formConvertor.changeEncoder(selectEncoder.Encoder)
|
formConvertor.changeEncoder(selectEncoder.Encoder)
|
||||||
selectEncoder.ChangeEncoder = formConvertor.changeEncoder
|
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
|
return formConvertor
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *formConvertor) getForm() *widget.Form {
|
func (f *formConvertor) getForm() fyne.CanvasObject {
|
||||||
return f.form
|
return container.NewVBox(
|
||||||
|
f.form,
|
||||||
|
container.NewHScroll(f.conversionMessage),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
type fileForConversion struct {
|
type fileForConversion struct {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user