5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-15 16:39:32 +08:00

[v3] Add window attachment for open/save dialogs. Fix filter bug.

This commit is contained in:
Lea Anthony 2023-06-23 20:33:35 +10:00
parent 722c3a653c
commit 2e313005e0
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405
2 changed files with 14 additions and 1 deletions

View File

@ -179,6 +179,7 @@ type OpenFileDialogOptions struct {
TreatsFilePackagesAsDirectories bool
AllowsOtherFileTypes bool
Filters []FileFilter
Window *WebviewWindow
Title string
Message string
@ -327,6 +328,7 @@ func (d *OpenFileDialog) SetOptions(options *OpenFileDialogOptions) {
d.treatsFilePackagesAsDirectories = options.TreatsFilePackagesAsDirectories
d.allowsOtherFileTypes = options.AllowsOtherFileTypes
d.filters = options.Filters
d.window = options.Window
}
func newOpenFileDialog() *OpenFileDialog {
@ -359,6 +361,7 @@ type SaveFileDialogOptions struct {
Filename string
ButtonText string
Filters []FileFilter
Window *WebviewWindow
}
type SaveFileDialog struct {
@ -397,6 +400,8 @@ func (d *SaveFileDialog) SetOptions(options *SaveFileDialogOptions) {
d.directory = options.Directory
d.filename = options.Filename
d.buttonText = options.ButtonText
d.filters = options.Filters
d.window = options.Window
}
// AddFilter adds a filter to the dialog. The filter is a display name and a semicolon separated list of extensions.

View File

@ -54,7 +54,7 @@ func (m *MessageProcessor) processDialogMethod(method string, rw http.ResponseWr
case "Question":
dialog = globalApplication.QuestionDialog()
}
var detached = params.Bool("Detached")
var detached = args.Bool("Detached")
if detached == nil || !*detached {
dialog.AttachToWindow(window)
}
@ -77,6 +77,10 @@ func (m *MessageProcessor) processDialogMethod(method string, rw http.ResponseWr
m.httpError(rw, "Error parsing dialog options: %s", err.Error())
return
}
var detached = args.Bool("Detached")
if detached == nil || !*detached {
options.Window = window
}
dialog := globalApplication.OpenFileDialogWithOptions(&options)
go func() {
@ -110,6 +114,10 @@ func (m *MessageProcessor) processDialogMethod(method string, rw http.ResponseWr
m.httpError(rw, "Error parsing dialog options: %s", err.Error())
return
}
var detached = args.Bool("Detached")
if detached == nil || !*detached {
options.Window = window
}
dialog := globalApplication.SaveFileDialogWithOptions(&options)
go func() {