Avalonia - Use content dialog for user profile manager (#3455)

* remove content dialog placeholder from all windows

* remove redundant window argument

* redesign user profile window

* wip

* use avalonia auto name generator

* add edit and new user options

* move profile image selection to content dialog

* remove usings

* fix updater

* address review

* adjust avatar dialog size

* add validation for user editor

* fix typo

* Shorten some labels
This commit is contained in:
Emmanuel Hansen 2022-07-24 17:38:38 +00:00 committed by GitHub
parent 3a3380fa25
commit 6e02cac952
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 968 additions and 953 deletions

View file

@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace Ryujinx.Ava.Ui.Controls
{
public class InputDialog : UserControl
public partial class InputDialog : UserControl
{
public string Message { get; set; }
public string Input { get; set; }
@ -24,8 +24,6 @@ namespace Ryujinx.Ava.Ui.Controls
MaxLength = maxLength;
DataContext = this;
InitializeComponent();
}
public InputDialog()
@ -33,33 +31,26 @@ namespace Ryujinx.Ava.Ui.Controls
InitializeComponent();
}
private void InitializeComponent()
public static async Task<(UserResult Result, string Input)> ShowInputDialog(string title, string message,
string input = "", string subMessage = "", uint maxLength = int.MaxValue)
{
AvaloniaXamlLoader.Load(this);
}
public static async Task<(UserResult Result, string Input)> ShowInputDialog(StyleableWindow window, string title, string message, string input = "", string subMessage = "", uint maxLength = int.MaxValue)
{
ContentDialog contentDialog = window.ContentDialog;
UserResult result = UserResult.Cancel;
InputDialog content = new InputDialog(message, input = "", subMessage = "", maxLength);
if (contentDialog != null)
InputDialog content = new InputDialog(message, input, subMessage, maxLength);
ContentDialog contentDialog = new ContentDialog
{
contentDialog.Title = title;
contentDialog.PrimaryButtonText = LocaleManager.Instance["InputDialogOk"];
contentDialog.SecondaryButtonText = "";
contentDialog.CloseButtonText = LocaleManager.Instance["InputDialogCancel"];
contentDialog.Content = content;
contentDialog.PrimaryButtonCommand = MiniCommand.Create(() =>
Title = title,
PrimaryButtonText = LocaleManager.Instance["InputDialogOk"],
SecondaryButtonText = "",
CloseButtonText = LocaleManager.Instance["InputDialogCancel"],
Content = content,
PrimaryButtonCommand = MiniCommand.Create(() =>
{
result = UserResult.Ok;
input = content.Input;
});
await contentDialog.ShowAsync();
}
})
};
await contentDialog.ShowAsync();
return (result, input);
}