2019-08-31 14:14:28 +00:00
|
|
|
package file_picker
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/gen2brain/dlgs"
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
)
|
|
|
|
|
2020-04-17 12:26:15 +00:00
|
|
|
func fileFilter(method string, extensions []string, size int, isMulti bool) (string, error) {
|
2019-08-31 14:14:28 +00:00
|
|
|
switch method {
|
2020-04-27 21:25:57 +00:00
|
|
|
case "any":
|
2019-08-31 14:14:28 +00:00
|
|
|
return `*.*`, nil
|
2020-04-27 21:25:57 +00:00
|
|
|
case "image":
|
2019-08-31 14:14:28 +00:00
|
|
|
return `*.png *.jpg *.jpeg`, nil
|
2020-04-27 21:25:57 +00:00
|
|
|
case "audio":
|
2020-04-17 12:26:15 +00:00
|
|
|
return `*.mp3 *.wav *.midi *.ogg *.aac`, nil
|
2020-04-27 21:25:57 +00:00
|
|
|
case "video":
|
2019-08-31 14:14:28 +00:00
|
|
|
return `*.webm *.mpeg *.mkv *.mp4 *.avi *.mov *.flv`, nil
|
2020-04-27 21:25:57 +00:00
|
|
|
case "media":
|
|
|
|
return `*.png *.jpg *.jpeg *.webm *.mpeg *.mkv *.mp4 *.avi *.mov *.flv`, nil
|
|
|
|
case "custom":
|
2020-04-08 11:45:06 +00:00
|
|
|
var i int
|
|
|
|
var filters = ""
|
2020-04-17 12:26:15 +00:00
|
|
|
for i = 0; i < size; i++ {
|
|
|
|
filters += `*.` + extensions[i] + ` `
|
2019-08-31 14:14:28 +00:00
|
|
|
}
|
2020-04-08 11:45:06 +00:00
|
|
|
return filters, nil
|
|
|
|
default:
|
2019-08-31 14:14:28 +00:00
|
|
|
return "", errors.New("unknown method")
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func fileDialog(title string, filter string) (string, error) {
|
|
|
|
filePath, _, err := dlgs.File(title, filter, false)
|
|
|
|
if err != nil {
|
|
|
|
return "", errors.Wrap(err, "failed to open dialog picker")
|
|
|
|
}
|
|
|
|
return filePath, nil
|
|
|
|
}
|
2020-06-17 21:13:44 +00:00
|
|
|
|
|
|
|
func dirDialog(title string) (string, error) {
|
2020-09-28 12:45:17 +00:00
|
|
|
dirPath, _, err := dlgs.File(title, "", true)
|
2020-06-17 21:13:44 +00:00
|
|
|
if err != nil {
|
|
|
|
return "", errors.Wrap(err, "failed to open dialog picker")
|
|
|
|
}
|
|
|
|
return dirPath, nil
|
|
|
|
}
|