Compare commits

..

No commits in common. "484a636fb461d7a82d65686c4c6d714a9038126a" and "1eb2d11ccd09d42d06cfc09b1da7cba65acfb1a8" have entirely different histories.

3 changed files with 33 additions and 74 deletions

View File

@ -487,12 +487,12 @@ func (c *ConversionStatsBar) UpdateStatsWithDetails(running, pending, completed,
// CreateRenderer creates the renderer for the stats bar
func (c *ConversionStatsBar) CreateRenderer() fyne.WidgetRenderer {
// Transparent background so the parent tinted bar color shows through
bg := canvas.NewRectangle(color.Transparent)
bg.CornerRadius = 0
bg.StrokeWidth = 0
bg := canvas.NewRectangle(color.NRGBA{R: 30, G: 30, B: 30, A: 255})
bg.CornerRadius = 4
bg.StrokeColor = GridColor
bg.StrokeWidth = 1
statusText := canvas.NewText("", color.NRGBA{R: 230, G: 236, B: 245, A: 255})
statusText := canvas.NewText("", TextColor)
statusText.TextStyle = fyne.TextStyle{Monospace: true}
statusText.TextSize = 11
@ -525,7 +525,7 @@ func (r *conversionStatsRenderer) Layout(size fyne.Size) {
// Layout text and progress bar
textSize := r.statusText.MinSize()
padding := float32(10)
padding := float32(8)
// If there's a running job, show progress bar
if r.bar.running > 0 && r.bar.progress > 0 {

View File

@ -90,7 +90,7 @@ func (r *stripedProgressRenderer) Layout(size fyne.Size) {
r.bg.Resize(size)
r.bg.Move(fyne.NewPos(0, 0))
fillWidth := size.Width * float32(r.bar.progress)
fillWidth := size.Width * r.bar.progress
fillSize := fyne.NewSize(fillWidth, size.Height)
r.fill.Resize(fillSize)

93
main.go
View File

@ -4161,39 +4161,6 @@ func runLogsCLI() error {
return nil
}
func (s *appState) executeAddToQueue() {
if err := s.addConvertToQueue(); err != nil {
dialog.ShowError(err, s.window)
} else {
dialog.ShowInformation("Queue", "Job added to queue!", s.window)
// Auto-start queue if not already running
if s.jobQueue != nil && !s.jobQueue.IsRunning() && !s.convertBusy {
s.jobQueue.Start()
logging.Debug(logging.CatUI, "queue auto-started after adding job")
}
}
}
func (s *appState) executeConversion() {
// Add job to queue and start immediately
if err := s.addConvertToQueue(); err != nil {
dialog.ShowError(err, s.window)
return
}
// Start the queue if not already running
if s.jobQueue != nil && !s.jobQueue.IsRunning() {
s.jobQueue.Start()
logging.Debug(logging.CatSystem, "started queue from Convert Now")
}
// Clear the loaded video from convert module
s.clearVideo()
// Show success message
dialog.ShowInformation("Convert", "Conversion started! View progress in Job Queue.", s.window)
}
func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
convertColor := moduleColor("convert")
@ -5768,25 +5735,16 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
// Add to Queue button
addQueueBtn := widget.NewButton("Add to Queue", func() {
state.persistConvertConfig()
// Check if converting a file with chapters to DVD format
isDVD := state.convert.SelectedFormat.Ext == ".mpg"
if state.source != nil && state.source.HasChapters && isDVD {
dialog.ShowConfirm("Chapter Warning",
"This file contains chapters, but DVD/MPEG format does not support embedded chapters.\n\n"+
"Chapters will be lost in the conversion.\n\n"+
"Consider using MKV or MP4 format to preserve chapters.\n\n"+
"Continue anyway?",
func(confirmed bool) {
if !confirmed {
return
}
state.executeAddToQueue()
}, state.window)
return
if err := state.addConvertToQueue(); err != nil {
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.convertBusy {
state.jobQueue.Start()
logging.Debug(logging.CatUI, "queue auto-started after adding job")
}
}
state.executeAddToQueue()
})
if src == nil {
addQueueBtn.Disable()
@ -5794,25 +5752,23 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
convertBtn = widget.NewButton("CONVERT NOW", func() {
state.persistConvertConfig()
// Check if converting a file with chapters to DVD format
isDVD := state.convert.SelectedFormat.Ext == ".mpg"
if state.source != nil && state.source.HasChapters && isDVD {
dialog.ShowConfirm("Chapter Warning",
"This file contains chapters, but DVD/MPEG format does not support embedded chapters.\n\n"+
"Chapters will be lost in the conversion.\n\n"+
"Consider using MKV or MP4 format to preserve chapters.\n\n"+
"Continue anyway?",
func(confirmed bool) {
if !confirmed {
return
}
state.executeConversion()
}, state.window)
// Add job to queue and start immediately
if err := state.addConvertToQueue(); err != nil {
dialog.ShowError(err, state.window)
return
}
state.executeConversion()
// Start the queue if not already running
if state.jobQueue != nil && !state.jobQueue.IsRunning() {
state.jobQueue.Start()
logging.Debug(logging.CatSystem, "started queue from Convert Now")
}
// Clear the loaded video from convert module
state.clearVideo()
// Show success message
dialog.ShowInformation("Convert", "Conversion started! View progress in Job Queue.", state.window)
})
convertBtn.Importance = widget.HighImportance
if src == nil {
@ -10357,6 +10313,9 @@ func buildInspectView(state *appState) fyne.CanvasObject {
)
// Bottom bar with module color
queueBtn := widget.NewButton("View Queue", func() {
state.showQueue()
})
statusLabel := widget.NewLabel("Idle")
statusLabel.Alignment = fyne.TextAlignCenter