Make it possible to drag and drop multiple files

It is now possible to add multiple files before sending them to the processing queue.
This commit is contained in:
2025-05-25 01:25:40 +05:00
parent 82167f042f
commit 84b36dd29e
11 changed files with 741 additions and 255 deletions

View File

@@ -25,6 +25,7 @@ type ConvertorHandler struct {
errorView error2.ViewContract
convertorRepository convertor.RepositoryContract
settingDirectoryForSaving setting.DirectoryForSavingContract
itemsToConvertService kernel.ItemsToConvertContract
}
func NewConvertorHandler(
@@ -33,6 +34,7 @@ func NewConvertorHandler(
errorView error2.ViewContract,
convertorRepository convertor.RepositoryContract,
settingDirectoryForSaving setting.DirectoryForSavingContract,
itemsToConvertService kernel.ItemsToConvertContract,
) *ConvertorHandler {
return &ConvertorHandler{
app: app,
@@ -40,6 +42,7 @@ func NewConvertorHandler(
errorView: errorView,
convertorRepository: convertorRepository,
settingDirectoryForSaving: settingDirectoryForSaving,
itemsToConvertService: itemsToConvertService,
}
}
@@ -50,7 +53,7 @@ func (h ConvertorHandler) MainConvertor() {
h.errorView.PanicError(err)
return
}
conversion := view.NewConversion(h.app, formats, h.runConvert, h.settingDirectoryForSaving)
conversion := view.NewConversion(h.app, formats, h.runConvert, h.settingDirectoryForSaving, h.itemsToConvertService)
h.convertorView.Main(conversion)
return
}
@@ -77,16 +80,26 @@ func (h ConvertorHandler) GetFfplayVersion() (string, error) {
}
func (h ConvertorHandler) runConvert(setting view.HandleConvertSetting) {
h.app.GetQueue().Add(&kernel.ConvertSetting{
VideoFileInput: setting.FileInput,
VideoFileOut: kernel.File{
Path: setting.DirectoryForSave + helper.PathSeparator() + setting.FileInput.Name + "." + setting.Format,
Name: setting.FileInput.Name,
Ext: "." + setting.Format,
},
OverwriteOutputFiles: setting.OverwriteOutputFiles,
Encoder: setting.Encoder,
})
h.app.GetWindow().GetLayout().GetRightTabs().SelectFileQueueTab()
for _, item := range h.itemsToConvertService.GetItems() {
file := item.GetFile()
if file == nil {
continue
}
h.app.GetQueue().Add(&kernel.ConvertSetting{
VideoFileInput: *file,
VideoFileOut: kernel.File{
Path: setting.DirectoryForSave + helper.PathSeparator() + file.Name + "." + setting.Format,
Name: file.Name,
Ext: "." + setting.Format,
},
OverwriteOutputFiles: setting.OverwriteOutputFiles,
Encoder: setting.Encoder,
})
}
h.itemsToConvertService.AfterAddingQueue()
}
func (h ConvertorHandler) checkingFFPathUtilities() bool {