Add Impl for SaveFilePickerWithResultAsync API (#19783)
* Add new SaveFilePickerWithResultAsync API to the base * Add SaveFilePickerWithResultAsync stub impl * Control Catalog SaveFilePickerWithResultAsync sample with XML and JSON types * Make SaveFilePickerResult a struct * Add managed picker implementation * Make SaveFilePickerResult a readonly struct * Windows implementation of SaveFilePickerWithResultAsync * Test impl for dbus * Reuse the file type object (FTO) so StorageFile consumer can match exactly the right FTO when receiving the SaveFilePicker's result. * Add Gtk impl * Avalonia.Native: surface selected save dialog filters * macOS: report selected NSSavePanel filter * Modify the conditional in case there's duplicate descriptions of FTO's in DBusSystemDialog.cs * Instantiate FPFT as fallback * Pass the mime/pattern to instantiated FPFT * Update API diff * Fix review comments --------- Co-authored-by: Max Katz <maxkatz6@outlook.com>
This commit is contained in:
+38
-2
@@ -1,6 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- https://learn.microsoft.com/dotnet/fundamentals/package-validation/diagnostic-ids -->
|
||||
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType)</Target>
|
||||
<Left>baseline/Avalonia/lib/net6.0/Avalonia.Dialogs.dll</Left>
|
||||
<Right>current/Avalonia/lib/net6.0/Avalonia.Dialogs.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Dialogs.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Dialogs.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType)</Target>
|
||||
<Left>baseline/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll</Left>
|
||||
<Right>current/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer)</Target>
|
||||
@@ -31,6 +49,12 @@
|
||||
<Left>baseline/Avalonia/lib/net6.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net6.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions)</Target>
|
||||
<Left>baseline/Avalonia/lib/net6.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net6.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64)</Target>
|
||||
@@ -79,6 +103,12 @@
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64)</Target>
|
||||
@@ -127,6 +157,12 @@
|
||||
<Left>baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions)</Target>
|
||||
<Left>baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64)</Target>
|
||||
@@ -145,4 +181,4 @@
|
||||
<Left>baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll</Left>
|
||||
<Right>current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll</Right>
|
||||
</Suppression>
|
||||
</Suppressions>
|
||||
</Suppressions>
|
||||
Reference in New Issue
Block a user