Browse Source

fix file dialog filter nullable annotation, and osx platform.

pull/8187/head
Dan Walmsley 4 years ago
parent
commit
af237c6dd7
  1. 3
      samples/ControlCatalog/ControlCatalog.csproj
  2. 3
      samples/ControlCatalog/Pages/DialogsPage.xaml.cs
  3. 2
      src/Avalonia.Controls/SystemDialog.cs
  4. 4
      src/Avalonia.Native/SystemDialogs.cs

3
samples/ControlCatalog/ControlCatalog.csproj

@ -1,7 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Update="**\*.xaml.cs"> <Compile Update="**\*.xaml.cs">

3
samples/ControlCatalog/Pages/DialogsPage.xaml.cs

@ -8,7 +8,6 @@ using Avalonia.Dialogs;
using Avalonia.Layout; using Avalonia.Layout;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
#pragma warning disable 4014 #pragma warning disable 4014
namespace ControlCatalog.Pages namespace ControlCatalog.Pages
{ {
public class DialogsPage : UserControl public class DialogsPage : UserControl
@ -22,7 +21,7 @@ namespace ControlCatalog.Pages
string lastSelectedDirectory = null; string lastSelectedDirectory = null;
List<FileDialogFilter> GetFilters() List<FileDialogFilter>? GetFilters()
{ {
if (this.FindControl<CheckBox>("UseFilters").IsChecked != true) if (this.FindControl<CheckBox>("UseFilters").IsChecked != true)
return null; return null;

2
src/Avalonia.Controls/SystemDialog.cs

@ -15,7 +15,7 @@ namespace Avalonia.Controls
/// Gets or sets a collection of filters which determine the types of files displayed in an /// Gets or sets a collection of filters which determine the types of files displayed in an
/// <see cref="OpenFileDialog"/> or an <see cref="SaveFileDialog"/>. /// <see cref="OpenFileDialog"/> or an <see cref="SaveFileDialog"/>.
/// </summary> /// </summary>
public List<FileDialogFilter> Filters { get; set; } = new List<FileDialogFilter>(); public List<FileDialogFilter>? Filters { get; set; } = new List<FileDialogFilter>();
/// <summary> /// <summary>
/// Gets or sets initial file name that is displayed when the dialog is opened. /// Gets or sets initial file name that is displayed when the dialog is opened.

4
src/Avalonia.Native/SystemDialogs.cs

@ -30,7 +30,7 @@ namespace Avalonia.Native
ofd.Title ?? "", ofd.Title ?? "",
ofd.Directory ?? "", ofd.Directory ?? "",
ofd.InitialFileName ?? "", ofd.InitialFileName ?? "",
string.Join(";", dialog.Filters.SelectMany(f => f.Extensions))); string.Join(";", dialog.Filters?.SelectMany(f => f.Extensions) ?? Array.Empty<string>()));
} }
else else
{ {
@ -39,7 +39,7 @@ namespace Avalonia.Native
dialog.Title ?? "", dialog.Title ?? "",
dialog.Directory ?? "", dialog.Directory ?? "",
dialog.InitialFileName ?? "", dialog.InitialFileName ?? "",
string.Join(";", dialog.Filters.SelectMany(f => f.Extensions))); string.Join(";", dialog.Filters?.SelectMany(f => f.Extensions) ?? Array.Empty<string>()));
} }
return events.Task.ContinueWith(t => { events.Dispose(); return t.Result; }); return events.Task.ContinueWith(t => { events.Dispose(); return t.Result; });

Loading…
Cancel
Save