add directory load
This commit is contained in:
59
main.go
59
main.go
@@ -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 {
|
||||
|
Reference in New Issue
Block a user