Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Languages/lang_en.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
"Show UniGetUI": "Show UniGetUI",
"Quit": "Quit",
"Are you sure?": "Are you sure?",
"Do you really want to reset UniGetUI to its default settings? This action cannot be undone.": "Do you really want to reset UniGetUI to its default settings? This action cannot be undone.",
"Do you really want to uninstall {0}?": "Do you really want to uninstall {0}?",
"Do you really want to uninstall the following {0} packages?": "Do you really want to uninstall the following {0} packages?",
"No": "No",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,13 @@ private static async Task ExportSettings(Visual? visual)
}

[RelayCommand]
private void ResetSettings(Visual? _)
private async Task ResetSettings(Visual? visual)
{
if (visual is null || TopLevel.GetTopLevel(visual) is not Window owner) return;
var dialog = new ResetSettingsDialog();
await dialog.ShowDialog(owner);
if (!dialog.Confirmed) return;

try { CoreSettings.ResetSettings(); }
catch (Exception ex) { Logger.Error(ex); }
AccessibilityAnnouncementService.Announce(
Expand Down
47 changes: 47 additions & 0 deletions src/UniGetUI.Avalonia/Views/DialogPages/ResetSettingsDialog.axaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:automation="clr-namespace:Avalonia.Automation;assembly=Avalonia.Controls"
xmlns:t="using:UniGetUI.Avalonia.MarkupExtensions"
x:Class="UniGetUI.Avalonia.Views.DialogPages.ResetSettingsDialog"
Title="{t:Translate Reset UniGetUI}"
Width="460"
SizeToContent="Height"
MinHeight="160"
CanResize="False"
ShowInTaskbar="False"
Background="{DynamicResource AppDialogBackground}"
WindowStartupLocation="CenterOwner">

<Grid Margin="20"
RowDefinitions="Auto,Auto,Auto"
RowSpacing="12">

<TextBlock Grid.Row="0"
Text="{t:Translate Reset UniGetUI}"
FontSize="16"
FontWeight="SemiBold"
automation:AutomationProperties.HeadingLevel="1"/>

<TextBlock Grid.Row="1"
Text="{t:Translate Do you really want to reset UniGetUI to its default settings? This action cannot be undone.}"
TextWrapping="Wrap"
Opacity="0.85"/>

<StackPanel Grid.Row="2"
Orientation="Horizontal"
HorizontalAlignment="Right"
Spacing="8">
<Button x:Name="CancelButton"
Content="{t:Translate Cancel}"
MinWidth="80"
automation:AutomationProperties.Name="{t:Translate Cancel}"/>
<Button x:Name="ResetButton"
Content="{t:Translate Reset UniGetUI}"
MinWidth="140"
Classes="accent"
automation:AutomationProperties.Name="{t:Translate Reset UniGetUI}"/>
</StackPanel>

</Grid>

</Window>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using Avalonia.Controls;
using Avalonia.Threading;

namespace UniGetUI.Avalonia.Views.DialogPages;

public partial class ResetSettingsDialog : Window
{
public bool Confirmed { get; private set; }

public ResetSettingsDialog()
{
InitializeComponent();
UniGetUI.Avalonia.Infrastructure.MicaWindowHelper.Apply(this);
CancelButton.Click += (_, _) => Close();
ResetButton.Click += (_, _) => { Confirmed = true; Close(); };
}

protected override void OnOpened(EventArgs e)
{
base.OnOpened(e);
Dispatcher.UIThread.Post(() => CancelButton.Focus(), DispatcherPriority.Background);
}
}
Loading