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:
@@ -12,6 +12,7 @@ type AppContract interface {
|
||||
GetQueue() QueueListContract
|
||||
GetLocalizerService() LocalizerContract
|
||||
GetConvertorService() ConvertorContract
|
||||
GetFFplayService() FFplayContract
|
||||
AfterClosing()
|
||||
RunConvertor()
|
||||
}
|
||||
@@ -21,27 +22,36 @@ type App struct {
|
||||
Window WindowContract
|
||||
Queue QueueListContract
|
||||
|
||||
localizerService LocalizerContract
|
||||
convertorService ConvertorContract
|
||||
localizerService LocalizerContract
|
||||
convertorService ConvertorContract
|
||||
blockProgressbarService BlockProgressbarContract
|
||||
ffplayService FFplayContract
|
||||
}
|
||||
|
||||
func NewApp(
|
||||
metadata *fyne.AppMetadata,
|
||||
localizerService LocalizerContract,
|
||||
queue QueueListContract,
|
||||
queueLayoutObject QueueLayoutObjectContract,
|
||||
ffplayService FFplayContract,
|
||||
convertorService ConvertorContract,
|
||||
) *App {
|
||||
app.SetMetadata(*metadata)
|
||||
a := app.New()
|
||||
|
||||
statusesText := GetBlockProgressbarStatusesText(localizerService)
|
||||
blockProgressbarService := NewBlockProgressbar(statusesText, ffplayService)
|
||||
rightTabsService := NewRightTabs(localizerService)
|
||||
queueLayoutObject := NewQueueLayoutObject(queue, localizerService, ffplayService, rightTabsService, blockProgressbarService.GetContainer())
|
||||
|
||||
return &App{
|
||||
AppFyne: a,
|
||||
Window: newWindow(a.NewWindow("GUI for FFmpeg"), NewLayout(queueLayoutObject, localizerService)),
|
||||
Window: newWindow(a.NewWindow("GUI for FFmpeg"), NewLayout(queueLayoutObject, localizerService, rightTabsService)),
|
||||
Queue: queue,
|
||||
|
||||
localizerService: localizerService,
|
||||
convertorService: convertorService,
|
||||
localizerService: localizerService,
|
||||
convertorService: convertorService,
|
||||
blockProgressbarService: blockProgressbarService,
|
||||
ffplayService: ffplayService,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +75,10 @@ func (a App) GetConvertorService() ConvertorContract {
|
||||
return a.convertorService
|
||||
}
|
||||
|
||||
func (a App) GetFFplayService() FFplayContract {
|
||||
return a.ffplayService
|
||||
}
|
||||
|
||||
func (a App) AfterClosing() {
|
||||
for _, cmd := range a.convertorService.GetRunningProcesses() {
|
||||
_ = cmd.Process.Kill()
|
||||
@@ -81,22 +95,33 @@ func (a App) RunConvertor() {
|
||||
}
|
||||
queue.Status = StatusType(InProgress)
|
||||
a.Window.GetLayout().ChangeQueueStatus(queueId, queue)
|
||||
if a.blockProgressbarService.GetContainer().Hidden {
|
||||
a.blockProgressbarService.GetContainer().Show()
|
||||
}
|
||||
|
||||
totalDuration, err := a.convertorService.GetTotalDuration(&queue.Setting.VideoFileInput)
|
||||
if err != nil {
|
||||
totalDuration = 0
|
||||
}
|
||||
progress := a.Window.GetLayout().NewProgressbar(queueId, totalDuration)
|
||||
|
||||
progress := a.blockProgressbarService.GetProgressbar(
|
||||
totalDuration,
|
||||
queue.Setting.VideoFileInput.Path,
|
||||
a.localizerService,
|
||||
)
|
||||
|
||||
err = a.convertorService.RunConvert(*queue.Setting, progress)
|
||||
if err != nil {
|
||||
queue.Status = StatusType(Error)
|
||||
queue.Error = err
|
||||
a.Window.GetLayout().ChangeQueueStatus(queueId, queue)
|
||||
a.blockProgressbarService.ProcessEndedWithError(err.Error())
|
||||
|
||||
continue
|
||||
}
|
||||
queue.Status = StatusType(Completed)
|
||||
a.Window.GetLayout().ChangeQueueStatus(queueId, queue)
|
||||
a.blockProgressbarService.ProcessEndedWithSuccess(queue.Setting.VideoFileOut.Path)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user