wails icon indicating copy to clipboard operation
wails copied to clipboard

Check valid Windows paths for ``runtime.OpenDirectoryDialog``

Open leaanthony opened this issue 3 years ago • 0 comments

Discussed in https://github.com/wailsapp/wails/discussions/1371

Originally posted by KiddoV May 3, 2022 What am I doing wrong here? In GO:

func (a *App) OpenDirectoryDialog(dialogOptions interface{}) (string, error) {
	directoryPath, err := runtime.OpenDirectoryDialog(a.ctx, runtime.OpenDialogOptions{
		DefaultDirectory: fmt.Sprintf("%v", dialogOptions.(map[string]interface{})["defaultDirectory"]),
		Title:            fmt.Sprintf("%v", dialogOptions.(map[string]interface{})["title"]),
	})
	if err != nil {
		return "", fmt.Errorf("failed opening dialog - %s", err.Error())
	}
	return directoryPath, nil
}

In JS:

window.go.main.App.OpenDirectoryDialog({
    defaultDirectory: "C:/",
    title: "Please select a folder to save Top and Bot CAD files..."
}).then(path => {
    //returned path
}).catch(err => {
    //Got ERR
});

I go PANIC when calling window.go.main.App.OpenDirectoryDialog in JS!!

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x10d9c58]

goroutine 38 [running]:
github.com/leaanthony/go-common-file-dialog/cfd.(*iFileDialogVtbl).setFolder(0x7fffb9490b30, 0x1f149581900, {0xc0002a05e0, 0x10a8801})
        C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/vtblCommonFunc.go:137 +0x78
github.com/leaanthony/go-common-file-dialog/cfd.(*iFileOpenDialog).SetFolder(0x1f149581900, {0xc0002a05e0, 0x5})
        C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/iFileOpenDialog.go:100 +0x2f
github.com/leaanthony/go-common-file-dialog/cfd.(*DialogConfig).apply(0xc0002bf3e8, {0x2191708, 0x1f149581900})
        C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/DialogConfig.go:70 +0xbe
github.com/leaanthony/go-common-file-dialog/cfd.NewSelectFolderDialog({{0xc00001e600, 0x37}, {0x12c8fe3, 0xa}, {0x0, 0x0}, {0xc0002a05e0, 0x3}, {0x0, 0x0, ...}, ...})
        C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/CommonFileDialog_windows.go:54 +0x65
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).OpenDirectoryDialog(0xc000068000, {{0xc0002a05e0, 0x3}, {0x0, 0x0}, {0xc00001e600, 0x37}, {0x0, 0x0, 0x0}, ...})
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/dialog.go:20 +0x11f
github.com/wailsapp/wails/v2/pkg/runtime.OpenDirectoryDialog({0x2188920, 0xc00002e9c0}, {{0xc0002a05e0, 0x3}, {0x0, 0x0}, {0xc00001e600, 0x37}, {0x0, 0x0, ...}, ...})
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/pkg/runtime/dialog.go:39 +0x98
main.(*App).OpenDirectoryDialog(0xc00008dd40, {0x1243520, 0xc000177a70})
        C:/MultiTech-Projects/GO Source Code Files/Web-Applications/Wails/utility-hub/app.go:158 +0x15e
reflect.Value.call({0x1283c40, 0xc00008dd40, 0x1f1495e0598}, {0x12c31cf, 0x4}, {0xc000004468, 0x1, 0x1235dc0})
        C:/Program Files/Go/src/reflect/value.go:556 +0x845
reflect.Value.Call({0x1283c40, 0xc00008dd40, 0xdc297a}, {0xc000004468, 0x1, 0x1})
        C:/Program Files/Go/src/reflect/value.go:339 +0xc5
github.com/wailsapp/wails/v2/internal/binding.(*BoundMethod).Call(0xc0000e2ee0, {0xc000050710, 0x1, 0x120ffc0})
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/binding/boundMethod.go:73 +0x178
github.com/wailsapp/wails/v2/internal/frontend/dispatcher.(*Dispatcher).processCallMessage(0xc00005e080, {0xc0002f6340, 0xc5},
{0x2196ee8, 0xc000068000})
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/dispatcher/calls.go:45 +0x189
github.com/wailsapp/wails/v2/internal/frontend/dispatcher.(*Dispatcher).ProcessMessage(0x0, {0xc0002f6340, 0x0}, {0x2196ee8, 0xc000068000})
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/dispatcher/dispatcher.go:39 +0x5egithub.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).processMessage.func1()
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/frontend.go:494 +0x3e
created by github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).processMessage
        C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/frontend.go:493 +0x225

Please help!

leaanthony avatar May 05 '22 09:05 leaanthony