mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-04 00:10:47 +08:00
Merge branch 'v3-alpha' into patch-2
This commit is contained in:
commit
7977a81606
@ -76,6 +76,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Add cancellation support for query methods on `sqlite` service by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067)
|
||||
- Add prepared statement support to `sqlite` service with JS bindings by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067)
|
||||
- Add `SetMenu()` on window to allow for setting a menu on a window by [@leaanthony](https://github.com/leaanthony)
|
||||
- Add File Association support for mac by [@wimaha](https://github.com/wimaha) in [#4177](https://github.com/wailsapp/wails/pull/4177)
|
||||
|
||||
### Fixed
|
||||
|
||||
@ -140,6 +141,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Built-in service types are now consistently called `Service` by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067)
|
||||
- Built-in service creation functions with options are now consistently called `NewWithConfig` by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067)
|
||||
- `Select` method on `sqlite` service is now named `Query` for consistency with Go APIs by [@fbbdev](https://github.com/fbbdev) in [#4067](https://github.com/wailsapp/wails/pull/4067)
|
||||
- Creates and ad-hoc signs app bundles in dev to enable certain macOS APIs by [@popaprozac] in [#4171](https://github.com/wailsapp/wails/pull/4171)
|
||||
|
||||
## v3.0.0-alpha.9 - 2025-01-13
|
||||
|
||||
|
@ -62,6 +62,7 @@ fileAssociations:
|
||||
| description | Description shown in file properties | Windows |
|
||||
| iconName | Name of the icon file (without extension) in the build folder | All |
|
||||
| role | Application's role for this file type (e.g., `Editor`, `Viewer`) | macOS |
|
||||
| mimeType | MIME type for the file (e.g., `image/jpeg`) | macOS |
|
||||
|
||||
## Listening for File Open Events
|
||||
|
||||
@ -105,6 +106,8 @@ Let's walk through setting up file associations for a simple text editor:
|
||||
Run `wails3 generate icons --help` for more information.
|
||||
:::
|
||||
|
||||
- For macOS add copy statement like `cp build/darwin/documenticon.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources` in the `create:app:bundle:` task.
|
||||
|
||||
2. ### Configure File Associations
|
||||
|
||||
Edit the `build/config.yml` file to add your file associations:
|
||||
|
@ -123,6 +123,7 @@ the application on macOS. Key features include:
|
||||
- Building binaries for amd64, arm64 and universal (both) architectures
|
||||
- Generating `.icns` icon file
|
||||
- Creating an `.app` bundle for distributing
|
||||
- Ad-hoc signing `.app` bundles
|
||||
- Setting macOS-specific build flags and environment variables
|
||||
|
||||
## Task Execution and Command Aliases
|
||||
|
@ -4,14 +4,15 @@ import (
|
||||
"embed"
|
||||
_ "embed"
|
||||
"fmt"
|
||||
"github.com/leaanthony/gosod"
|
||||
"gopkg.in/yaml.v3"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/leaanthony/gosod"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
//go:embed build_assets
|
||||
@ -121,6 +122,7 @@ type FileAssociation struct {
|
||||
Description string `yaml:"description"`
|
||||
IconName string `yaml:"iconName"`
|
||||
Role string `yaml:"role"`
|
||||
MimeType string `yaml:"mimeType"`
|
||||
}
|
||||
|
||||
type UpdateConfig struct {
|
||||
|
@ -56,6 +56,7 @@ fileAssociations:
|
||||
# description: Image File
|
||||
# iconName: jpegFileIcon
|
||||
# role: Editor
|
||||
# mimeType: image/jpeg # (optional)
|
||||
|
||||
# Other data
|
||||
other:
|
||||
|
@ -69,7 +69,13 @@ tasks:
|
||||
- cp build/darwin/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources
|
||||
- cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS
|
||||
- cp build/darwin/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents
|
||||
- codesign --force --deep --sign - {{.BIN_DIR}}/{{.APP_NAME}}.app
|
||||
|
||||
run:
|
||||
cmds:
|
||||
- '{{.BIN_DIR}}/{{.APP_NAME}}'
|
||||
- mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/{MacOS,Resources}
|
||||
- cp build/darwin/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/Resources
|
||||
- cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/MacOS
|
||||
- cp build/darwin/Info.dev.plist {{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/Info.plist
|
||||
- codesign --force --deep --sign - {{.BIN_DIR}}/{{.APP_NAME}}.dev.app
|
||||
- '{{.BIN_DIR}}/{{.APP_NAME}}.dev.app/Contents/MacOS/{{.APP_NAME}}'
|
||||
|
@ -2,27 +2,50 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>{{.ProductName}}</string>
|
||||
<string>{{.ProductName}}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>{{.BinaryName}}</string>
|
||||
<string>{{.BinaryName}}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>{{.ProductIdentifier}}</string>
|
||||
<string>{{.ProductIdentifier}}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>{{.ProductComments}}</string>
|
||||
<string>{{.ProductComments}}</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>icons</string>
|
||||
<string>icons</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.15.0</string>
|
||||
<string>10.15.0</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>true</string>
|
||||
<string>true</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>{{.ProductCopyright}}</string>
|
||||
<string>{{.ProductCopyright}}</string>
|
||||
{{- if .FileAssociations}}
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
{{- range .FileAssociations}}
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>{{.Ext}}</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>{{.Name}}</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>{{.Role}}</string>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>{{.IconName}}</string>
|
||||
{{- if .MimeType}}
|
||||
<key>CFBundleTypeMimeType</key>
|
||||
<string>{{.MimeType}}</string>
|
||||
{{- end}}
|
||||
</dict>
|
||||
{{- end}}
|
||||
</array>
|
||||
{{- end}}
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsLocalNetworking</key>
|
||||
|
@ -2,26 +2,49 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>{{.ProductName}}</string>
|
||||
<string>{{.ProductName}}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>{{.BinaryName}}</string>
|
||||
<string>{{.BinaryName}}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>{{.ProductIdentifier}}</string>
|
||||
<string>{{.ProductIdentifier}}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>{{.ProductComments}}</string>
|
||||
<string>{{.ProductComments}}</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<string>{{.ProductVersion}}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>icons</string>
|
||||
<string>icons</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.15.0</string>
|
||||
<string>10.15.0</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>true</string>
|
||||
<string>true</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>{{.ProductCopyright}}</string>
|
||||
<string>{{.ProductCopyright}}</string>
|
||||
{{- if .FileAssociations}}
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
{{- range .FileAssociations}}
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>{{.Ext}}</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>{{.Name}}</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>{{.Role}}</string>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>{{.IconName}}</string>
|
||||
{{- if .MimeType}}
|
||||
<key>CFBundleTypeMimeType</key>
|
||||
<string>{{.MimeType}}</string>
|
||||
{{- end}}
|
||||
</dict>
|
||||
{{- end}}
|
||||
</array>
|
||||
{{- end}}
|
||||
</dict>
|
||||
</plist>
|
@ -291,6 +291,9 @@ func (d *OpenFileDialogStruct) PromptForMultipleSelection() ([]string, error) {
|
||||
}
|
||||
|
||||
selections, err := InvokeSyncWithResultAndError(d.impl.show)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var result []string
|
||||
for filename := range selections {
|
||||
|
@ -14,6 +14,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
- Fixed locking issue on Windows when multiselect dialog returns an error. Fixed in [PR](https://github.com/wailsapp/wails/pull/4156) by @johannes-luebke
|
||||
|
||||
## v2.9.1 - 2024-06-18
|
||||
|
||||
### Fixed
|
||||
|
Loading…
Reference in New Issue
Block a user