Hapus tombol kosong bawaan Fyne di modal + semua format ikon dikonversi ke PNG
- dialog.NewCustom selalu menambah tombol dismiss walau labelnya kosong; modal kita pakai baris tombol sendiri, jadi pindah ke NewCustomWithoutButtons (ditambah tes yang menolak pemakaian dialog.NewCustom lagi) - Ikon: SVG/webp/gif/bmp/ico/jpeg semuanya dikonversi ke PNG saat dipasang (desktop environment tidak konsisten membaca format lain), gambar besar diperkecil ke maksimal 512px - Filter file picker ikon menambah webp/gif/bmp - Perbaiki data race pada endpoint pencarian ikon (iconifyBase) yang ditemukan oleh go test -race; tes UI menunggu goroutine pencarian selesai - go test -race -count=1 ./... hijau untuk semua paket
This commit is contained in:
1 parent
6e6f9afea9
commit
cad41caaee
10 files changed
+269
-73
No files matched your search
@@ -81,11 +81,11 @@ func installIconFor(o iconOptions) (path, source string, err error) {
|
||||
}
|
||||
|
||||
for _, attempt := range attempts {
|
||||
data, ext, err := attempt.load()
|
||||
data, _, err := attempt.load()
|
||||
if err != nil || len(data) == 0 {
|
||||
continue
|
||||
}
|
||||
path, err := icon.SaveBytes(data, ext, o.Slug)
|
||||
path, err := icon.Save(data, o.Slug)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
@@ -102,22 +102,21 @@ var errSkipIcon = errors.New("icon source not available")
|
||||
// RefreshIcon mengunduh ulang ikon shortcut dari sumber online-nya (sync manual).
|
||||
func RefreshIcon(sc store.Shortcut) (string, error) {
|
||||
var data []byte
|
||||
var ext string
|
||||
var err error
|
||||
|
||||
switch {
|
||||
case sc.IconSource == "":
|
||||
return "", errors.New("this icon has no online source")
|
||||
case strings.HasPrefix(sc.IconSource, iconSourceFavicon):
|
||||
data, ext, err = icon.Fetch(strings.TrimPrefix(sc.IconSource, iconSourceFavicon))
|
||||
data, _, err = icon.Fetch(strings.TrimPrefix(sc.IconSource, iconSourceFavicon))
|
||||
case strings.HasPrefix(sc.IconSource, iconSourceSearch):
|
||||
result, ok := icon.Find(strings.TrimPrefix(sc.IconSource, iconSourceSearch))
|
||||
if !ok {
|
||||
return "", errors.New("no matching icon found online anymore")
|
||||
}
|
||||
data, ext, err = icon.FromURL(result.URL)
|
||||
data, _, err = icon.FromURL(result.URL)
|
||||
case strings.HasPrefix(sc.IconSource, "http"):
|
||||
data, ext, err = icon.FromURL(sc.IconSource)
|
||||
data, _, err = icon.FromURL(sc.IconSource)
|
||||
default:
|
||||
return "", errors.New("this icon comes from a local file, not the internet")
|
||||
}
|
||||
@@ -125,7 +124,7 @@ func RefreshIcon(sc store.Shortcut) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
path, err := icon.SaveBytes(data, ext, sc.Slug)
|
||||
path, err := icon.Save(data, sc.Slug)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user