Resolved TODO about OpenFile() on GTK+ returning NULL.
This commit is contained in:
parent
29a764199f
commit
c91cbf12b8
|
@ -27,7 +27,8 @@ func (w *window) openFile(f func(filename string)) {
|
||||||
window := (*C.GtkWindow)(unsafe.Pointer(widget))
|
window := (*C.GtkWindow)(unsafe.Pointer(widget))
|
||||||
dialog := (*C.GtkDialog)(unsafe.Pointer(widget))
|
dialog := (*C.GtkDialog)(unsafe.Pointer(widget))
|
||||||
fc := (*C.GtkFileChooser)(unsafe.Pointer(widget))
|
fc := (*C.GtkFileChooser)(unsafe.Pointer(widget))
|
||||||
C.gtk_file_chooser_set_local_only(fc, C.FALSE)
|
// non-local filenames are relevant mainly to GIO where we can open *anything*, not to Go os.File; see https://twitter.com/braket/status/506142849654870016
|
||||||
|
C.gtk_file_chooser_set_local_only(fc, C.TRUE)
|
||||||
C.gtk_file_chooser_set_select_multiple(fc, C.FALSE)
|
C.gtk_file_chooser_set_select_multiple(fc, C.FALSE)
|
||||||
C.gtk_file_chooser_set_show_hidden(fc, C.TRUE)
|
C.gtk_file_chooser_set_show_hidden(fc, C.TRUE)
|
||||||
C.gtk_window_set_modal(window, C.TRUE)
|
C.gtk_window_set_modal(window, C.TRUE)
|
||||||
|
@ -49,7 +50,7 @@ func our_openfile_response_callback(dialog *C.GtkDialog, response C.gint, data C
|
||||||
}
|
}
|
||||||
filename := C.gtk_file_chooser_get_filename((*C.GtkFileChooser)(unsafe.Pointer(dialog)))
|
filename := C.gtk_file_chooser_get_filename((*C.GtkFileChooser)(unsafe.Pointer(dialog)))
|
||||||
if filename == nil {
|
if filename == nil {
|
||||||
panic("[DEBUG TODO] chosen filename NULL")
|
panic("chosen filename NULL in OpenFile()")
|
||||||
}
|
}
|
||||||
realfilename := fromgstr(filename)
|
realfilename := fromgstr(filename)
|
||||||
C.g_free(C.gpointer(unsafe.Pointer(filename)))
|
C.g_free(C.gpointer(unsafe.Pointer(filename)))
|
||||||
|
|
|
@ -29,6 +29,7 @@ static DWORD WINAPI doOpenFile(LPVOID data)
|
||||||
ofn.lpstrInitialDir = NULL; // let system decide
|
ofn.lpstrInitialDir = NULL; // let system decide
|
||||||
ofn.lpstrTitle = NULL; // let system decide
|
ofn.lpstrTitle = NULL; // let system decide
|
||||||
// TODO OFN_SHAREAWARE?
|
// TODO OFN_SHAREAWARE?
|
||||||
|
// better question: TODO keep networking?
|
||||||
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_NOCHANGEDIR | OFN_NODEREFERENCELINKS | OFN_NOTESTFILECREATE | OFN_PATHMUSTEXIST;
|
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_NOCHANGEDIR | OFN_NODEREFERENCELINKS | OFN_NOTESTFILECREATE | OFN_PATHMUSTEXIST;
|
||||||
if (GetOpenFileNameW(&ofn) == FALSE) {
|
if (GetOpenFileNameW(&ofn) == FALSE) {
|
||||||
err = CommDlgExtendedError();
|
err = CommDlgExtendedError();
|
||||||
|
|
Loading…
Reference in New Issue