diff --git a/src/KeyKeeper/ViewModels/LockedRepositoryViewModel.cs b/src/KeyKeeper/ViewModels/LockedRepositoryViewModel.cs index 11745f2..f3367fa 100644 --- a/src/KeyKeeper/ViewModels/LockedRepositoryViewModel.cs +++ b/src/KeyKeeper/ViewModels/LockedRepositoryViewModel.cs @@ -37,24 +37,24 @@ public partial class LockedRepositoryViewModel : ViewModelBase if (e.Message == PassStoreFileException.ContentHMACMismatch.Message || e.Message == PassStoreFileException.InvalidBeginMarker.Message) { - await parent.ShowErrorPopup("Incorrect password or corrupted file"); + await parent.ShowErrorPopup("Incorrect password or corrupted file", "Check password"); } else if (e.Message == PassStoreFileException.UnexpectedEndOfFile.Message || e.Message == PassStoreFileException.IncorrectMagicNumber.Message || e.Message == PassStoreFileException.InvalidCryptoHeader.Message || e.Message == PassStoreFileException.InvalidPassStoreEntry.Message) { - await parent.ShowErrorPopup("Corrupted file"); + await parent.ShowErrorPopup("Corrupted file", "Password store error"); } else if (e.Message == PassStoreFileException.UnsupportedVersion.Message) { - await parent.ShowErrorPopup("Unsupported store file version"); + await parent.ShowErrorPopup("Unsupported store file version", "Password store error"); } else { - await parent.ShowErrorPopup("Unknown password store unlock error"); + await parent.ShowErrorPopup("Unknown unlock error", "Password store error"); } } catch (Exception e) { Console.WriteLine(e); - await parent.ShowErrorPopup("Cannot open the password store file"); + await parent.ShowErrorPopup("Cannot open the password store file", "Password store error"); } } } \ No newline at end of file diff --git a/src/KeyKeeper/ViewModels/RepositoryWindowViewModel.cs b/src/KeyKeeper/ViewModels/RepositoryWindowViewModel.cs index 48fab08..c17d4db 100644 --- a/src/KeyKeeper/ViewModels/RepositoryWindowViewModel.cs +++ b/src/KeyKeeper/ViewModels/RepositoryWindowViewModel.cs @@ -16,7 +16,7 @@ public partial class RepositoryWindowViewModel : ViewModelBase private DateTime _timerStart; private string _lockTimerDisplay = string.Empty; - public Func ShowErrorPopup; + public Func ShowErrorPopup; public object CurrentPage { diff --git a/src/KeyKeeper/Views/ErrorDialog.axaml b/src/KeyKeeper/Views/ErrorDialog.axaml index 03246d0..89faf82 100644 --- a/src/KeyKeeper/Views/ErrorDialog.axaml +++ b/src/KeyKeeper/Views/ErrorDialog.axaml @@ -1,31 +1,67 @@ - + Title="Access Error" + TransparencyLevelHint="AcrylicBlur" + ExtendClientAreaToDecorationsHint="True"> - - - diff --git a/src/KeyKeeper/Views/ErrorDialog.axaml.cs b/src/KeyKeeper/Views/ErrorDialog.axaml.cs index ef17520..584597d 100644 --- a/src/KeyKeeper/Views/ErrorDialog.axaml.cs +++ b/src/KeyKeeper/Views/ErrorDialog.axaml.cs @@ -1,20 +1,27 @@ +using System; using Avalonia.Controls; using Avalonia.Interactivity; +using Avalonia.Threading; namespace KeyKeeper.Views; public partial class ErrorDialog : Window { - public ErrorDialog(string message) + public ErrorDialog(string message, string title = "Oops! Something went wrong") { InitializeComponent(); - MinWidth = 400; - MinHeight = 200; MessageText.Text = message; + MessageTitle.Text = title; } - private void Ok_Click(object sender, RoutedEventArgs e) + private void Ok_Click(object? sender, RoutedEventArgs e) { Close(); } -} \ No newline at end of file + + protected override void OnOpened(EventArgs e) + { + base.OnOpened(e); + OkButton.Focus(); + } +} diff --git a/src/KeyKeeper/Views/RepositoryWindow.axaml.cs b/src/KeyKeeper/Views/RepositoryWindow.axaml.cs index e3d7e08..02e199e 100644 --- a/src/KeyKeeper/Views/RepositoryWindow.axaml.cs +++ b/src/KeyKeeper/Views/RepositoryWindow.axaml.cs @@ -23,9 +23,9 @@ public partial class RepositoryWindow : Window MinHeight = 500; DataContext = model; - model.ShowErrorPopup = async (string message) => + model.ShowErrorPopup = async (string message, string title) => { - await new ErrorDialog(message).ShowDialog(this); + await new ErrorDialog(message, title).ShowDialog(this); }; }