add directory load

This commit is contained in:
2025-02-23 14:20:48 -05:00
parent 5dd5ccde46
commit ad2d3e13fc

59
main.go
View File

@@ -99,24 +99,48 @@ func jpegToPng(in io.Reader) (*bytes.Buffer, error) {
return buf, nil
}
func newDirectory(img *tk.LabelWidget) func() {
func newFileInDirectory(img *tk.LabelWidget) func() {
return func() {
files := tk.GetOpenFile(tk.Filetypes(validFileTypes))
if len(files) > 0 {
directoryState.currentFile = filepath.Base(files[0])
directoryState.currentDirectory = filepath.Dir(files[0])
dirfiles, err := os.ReadDir(directoryState.currentDirectory)
if err != nil {
log.Println(err)
}
directoryState.images = []string{}
for _, v := range dirfiles {
if isImage(v) {
directoryState.images = append(directoryState.images, v.Name())
}
}
updateImage(files[0], img)
if len(files) < 1 || files[0] == "" {
log.Println("no file chosen")
return
}
directoryState.currentFile = filepath.Base(files[0])
directoryState.currentDirectory = filepath.Dir(files[0])
dirfiles, err := os.ReadDir(directoryState.currentDirectory)
if err != nil {
log.Println(err)
}
directoryState.images = []string{}
for _, v := range dirfiles {
if isImage(v) {
directoryState.images = append(directoryState.images, v.Name())
}
}
updateImage(files[0], img)
}
}
func newDirectory(img *tk.LabelWidget) func() {
return func() {
dir := tk.ChooseDirectory()
if dir == "" {
log.Println("no directory chosen")
return
}
directoryState.currentDirectory = dir
dirfiles, err := os.ReadDir(directoryState.currentDirectory)
if err != nil {
log.Println(err)
}
directoryState.images = []string{}
for _, v := range dirfiles {
if isImage(v) {
directoryState.images = append(directoryState.images, v.Name())
}
}
updateImage(filepath.Join(directoryState.currentDirectory, directoryState.images[0]), img)
}
}
@@ -150,7 +174,8 @@ func main() {
menubar := tk.Menu()
fileMenu := menubar.Menu()
fileMenu.AddCommand(tk.Lbl("Open"), tk.Underline(0), tk.Accelerator("Meta+O"), tk.Command(newDirectory(img)))
fileMenu.AddCommand(tk.Lbl("Open File"), tk.Underline(0), tk.Accelerator("Meta+O"), tk.Command(newFileInDirectory(img)))
fileMenu.AddCommand(tk.Lbl("Open Directory"), tk.Underline(0), tk.Command(newDirectory(img)))
menubar.AddCascade(tk.Lbl("File"), tk.Underline(0), tk.Mnu(fileMenu))
// TODO: if someone presses the Meta key again after the openfile dialog box closes,
@@ -164,7 +189,7 @@ func main() {
metaActive = true
case "o":
if metaActive {
newDirectory(img)()
newFileInDirectory(img)()
}
case "Up":
if curr > 0 {