Label jenis aplikasi dengan auto-detect (Go/AppImage/Electron/Script/Windows/Binary/PWA)
- internal/shortcut/kind.go: deteksi dari isi berkas - build info Go, magic AppImage, resources/*.asar untuk Electron, shebang untuk script, MZ untuk .exe - .exe Windows kini boleh dipasang dan dijalankan lewat wine (Exec=wine <path>); kalau wine tidak terpasang, install ditolak dengan pesan jelas - metadata menyimpan kind; chip jenis ditampilkan di setiap baris shortcut (data lama tetap tampil sebagai Executable/PWA) - dialog menampilkan hasil deteksi setelah berkas dipilih, mis. 'winbox.exe - windows' - README: bagian label otomatis + screenshot baru
This commit is contained in:
1 parent
41ada9a506
commit
d6f6c69c5a
13 files changed
+249
-13
No files matched your search
@@ -129,7 +129,8 @@ func (ui *app) row(sc store.Shortcut) *hoverCard {
|
||||
caption(metaText(sc)),
|
||||
)
|
||||
|
||||
chips := make([]fyne.CanvasObject, 0, 3)
|
||||
chips := make([]fyne.CanvasObject, 0, 4)
|
||||
chips = append(chips, chip(kindLabel(sc), colorNameChipKind))
|
||||
if sc.Targets.Menu {
|
||||
chips = append(chips, chip(T("chip_menu"), colorNameChipMenu))
|
||||
}
|
||||
@@ -157,18 +158,44 @@ func (ui *app) row(sc store.Shortcut) *hoverCard {
|
||||
actions))
|
||||
}
|
||||
|
||||
// metaText menampilkan tipe shortcut dan penanda singkatnya.
|
||||
// kindLabel adalah label jenis aplikasi hasil auto-detect.
|
||||
// Istilahnya teknis (nama teknologi), jadi tidak diterjemahkan.
|
||||
func kindLabel(sc store.Shortcut) string {
|
||||
switch sc.Kind {
|
||||
case shortcut.KindGo:
|
||||
return "Go"
|
||||
case shortcut.KindAppImage:
|
||||
return "AppImage"
|
||||
case shortcut.KindElectron:
|
||||
return "Electron"
|
||||
case shortcut.KindScript:
|
||||
return "Script"
|
||||
case shortcut.KindWindows:
|
||||
return "Windows"
|
||||
case shortcut.KindBinary:
|
||||
return "Binary"
|
||||
case shortcut.KindPWA:
|
||||
return "PWA"
|
||||
}
|
||||
// shortcut lama (sebelum ada auto-detect)
|
||||
if sc.Type == store.TypeWebApp {
|
||||
return "PWA"
|
||||
}
|
||||
return "Executable"
|
||||
}
|
||||
|
||||
// metaText menampilkan penanda singkat: nama berkas binary atau host web app.
|
||||
func metaText(sc store.Shortcut) string {
|
||||
if sc.Type == store.TypeWebApp {
|
||||
if host := hostOf(sc.URL); host != "" {
|
||||
return "Web · " + host
|
||||
return host
|
||||
}
|
||||
return "Web"
|
||||
return sc.URL
|
||||
}
|
||||
if sc.BinaryPath != "" {
|
||||
return "Executable · " + filepath.Base(sc.BinaryPath)
|
||||
return filepath.Base(sc.BinaryPath)
|
||||
}
|
||||
return "Executable"
|
||||
return sc.Name
|
||||
}
|
||||
|
||||
func fallbackIcon(sc store.Shortcut) fyne.Resource {
|
||||
|
||||
Reference in new issue
Block a user