From 189bce9073471806af1b123dbb39c19ed50db310 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 27 Mar 2019 20:32:55 +0300 Subject: [PATCH 1/5] [X11] File chooser accept action names --- src/Avalonia.X11/NativeDialogs/GtkNativeFileDialogs.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.X11/NativeDialogs/GtkNativeFileDialogs.cs b/src/Avalonia.X11/NativeDialogs/GtkNativeFileDialogs.cs index 61047ef2a9..cb0615e1ce 100644 --- a/src/Avalonia.X11/NativeDialogs/GtkNativeFileDialogs.cs +++ b/src/Avalonia.X11/NativeDialogs/GtkNativeFileDialogs.cs @@ -68,7 +68,10 @@ namespace Avalonia.X11.NativeDialogs return false; }) }; - using (var open = new Utf8Buffer("Open")) + using (var open = new Utf8Buffer( + action == GtkFileChooserAction.Save ? "Save" + : action == GtkFileChooserAction.SelectFolder ? "Select" + : "Open")) gtk_dialog_add_button(dlg, open, GtkResponseType.Accept); using (var open = new Utf8Buffer("Cancel")) gtk_dialog_add_button(dlg, open, GtkResponseType.Cancel); From 23fe70f5d5c6c7adb47e767bf3e8291efe0c2c98 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 27 Mar 2019 21:11:48 +0300 Subject: [PATCH 2/5] [X11] Added support for filters in GTK file dialog --- samples/ControlCatalog/Pages/DialogsPage.xaml | 1 + .../ControlCatalog/Pages/DialogsPage.xaml.cs | 26 +++++++++++++++++-- src/Avalonia.X11/NativeDialogs/Gtk.cs | 12 +++++++++ .../NativeDialogs/GtkNativeFileDialogs.cs | 20 +++++++++++--- 4 files changed, 54 insertions(+), 5 deletions(-) diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml b/samples/ControlCatalog/Pages/DialogsPage.xaml index 2bd9a39300..60f8e3656e 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml @@ -2,6 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ControlCatalog.Pages.DialogsPage"> + Use filters diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs index e2e9fbd21c..d207689223 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using Avalonia.Controls; using Avalonia.Markup.Xaml; #pragma warning disable 4014 @@ -9,18 +10,39 @@ namespace ControlCatalog.Pages public DialogsPage() { this.InitializeComponent(); + + List GetFilters() + { + if (this.FindControl("UseFilters").IsChecked != true) + return null; + return new List + { + new FileDialogFilter + { + Name = "Text files (.txt)", Extensions = new List {"txt"} + }, + new FileDialogFilter + { + Name = "All files", + Extensions = new List {"*"} + } + }; + } + this.FindControl