diff --git a/internal/queue/queue.go b/internal/queue/queue.go index aab9819..b248add 100644 --- a/internal/queue/queue.go +++ b/internal/queue/queue.go @@ -283,6 +283,13 @@ func (q *Queue) Stop() { q.running = false } +// IsRunning returns true if the queue is currently processing jobs +func (q *Queue) IsRunning() bool { + q.mu.RLock() + defer q.mu.RUnlock() + return q.running +} + // PauseAll pauses any running job and stops processing func (q *Queue) PauseAll() { q.mu.Lock() diff --git a/main.go b/main.go index 185c749..fd6421b 100644 --- a/main.go +++ b/main.go @@ -1880,6 +1880,11 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject { dialog.ShowError(err, state.window) } else { dialog.ShowInformation("Queue", "Job added to queue!", state.window) + // Auto-start queue if not already running + if state.jobQueue != nil && !state.jobQueue.IsRunning() { + state.jobQueue.Start() + logging.Debug(logging.CatUI, "queue auto-started after adding job") + } } }) if src == nil {