Shorten queue descriptions and wrap text to keep controls visible
This commit is contained in:
parent
4f6746594a
commit
6ad72ecc46
|
|
@ -119,6 +119,7 @@ func buildJobItem(
|
||||||
|
|
||||||
descLabel := widget.NewLabel(job.Description)
|
descLabel := widget.NewLabel(job.Description)
|
||||||
descLabel.TextStyle = fyne.TextStyle{Italic: true}
|
descLabel.TextStyle = fyne.TextStyle{Italic: true}
|
||||||
|
descLabel.Wrapping = fyne.TextWrapWord
|
||||||
|
|
||||||
// Progress bar (for running jobs)
|
// Progress bar (for running jobs)
|
||||||
progress := widget.NewProgressBar()
|
progress := widget.NewProgressBar()
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"unicode/utf8"
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
|
|
@ -51,6 +52,28 @@ func FirstNonEmpty(values ...string) string {
|
||||||
return "--"
|
return "--"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ShortenMiddle shortens a string to max runes, keeping start and end with ellipsis in the middle.
|
||||||
|
func ShortenMiddle(s string, max int) string {
|
||||||
|
if max <= 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
if utf8.RuneCountInString(s) <= max {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
ellipsis := "…"
|
||||||
|
keep := max - utf8.RuneCountInString(ellipsis)
|
||||||
|
if keep <= 0 {
|
||||||
|
return s[:max]
|
||||||
|
}
|
||||||
|
left := keep / 2
|
||||||
|
right := keep - left
|
||||||
|
runes := []rune(s)
|
||||||
|
if left+right >= len(runes) {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
return string(runes[:left]) + ellipsis + string(runes[len(runes)-right:])
|
||||||
|
}
|
||||||
|
|
||||||
// Parsing utilities
|
// Parsing utilities
|
||||||
|
|
||||||
// ParseFloat parses a float64 from a string
|
// ParseFloat parses a float64 from a string
|
||||||
|
|
|
||||||
2
main.go
2
main.go
|
|
@ -918,7 +918,7 @@ func (s *appState) addConvertToQueue() error {
|
||||||
job := &queue.Job{
|
job := &queue.Job{
|
||||||
Type: queue.JobTypeConvert,
|
Type: queue.JobTypeConvert,
|
||||||
Title: fmt.Sprintf("Convert %s", filepath.Base(src.Path)),
|
Title: fmt.Sprintf("Convert %s", filepath.Base(src.Path)),
|
||||||
Description: fmt.Sprintf("Output: %s → %s", filepath.Base(src.Path), filepath.Base(outPath)),
|
Description: fmt.Sprintf("Output: %s → %s", utils.ShortenMiddle(filepath.Base(src.Path), 40), utils.ShortenMiddle(filepath.Base(outPath), 40)),
|
||||||
InputFile: src.Path,
|
InputFile: src.Path,
|
||||||
OutputFile: outPath,
|
OutputFile: outPath,
|
||||||
Config: config,
|
Config: config,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user