Skip to content

Commit 089f874

Browse files
Add option to save to pending changes popup
1 parent b87fe89 commit 089f874

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

MSUScripter/MSUScripter.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<PackageReference Include="K4os.Hash.xxHash" Version="1.0.8" />
2222
<PackageReference Include="MattEqualsCoder.AppImageDesktopFileCreator" Version="0.2.0" />
2323
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
24-
<PackageReference Include="MattEqualsCoder.AvaloniaControls" Version="1.8.1" />
24+
<PackageReference Include="MattEqualsCoder.AvaloniaControls" Version="1.9.0" />
2525
<PackageReference Include="MattEqualsCoder.GitHubReleaseChecker" Version="1.1.3" />
2626
<PackageReference Include="MattEqualsCoder.MSURandomizer.Library" Version="3.2.1" />
2727
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.6" />

MSUScripter/Views/MsuProjectWindow.axaml.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -661,13 +661,31 @@ private void Window_OnClosing(object? sender, WindowClosingEventArgs e)
661661

662662
private async Task ShowUnsavedChangesWindow()
663663
{
664-
if (!await MessageWindow.ShowYesNoDialog(
665-
"You currently have unsaved changes. Are you sure you want to close this window?", "Unsaved Changes", parentWindow: this))
664+
var messageWindow = new MessageWindow(new MessageWindowRequest()
665+
{
666+
Buttons = MessageWindowButtons.YesNoCancel,
667+
PrimaryButtonText = "Save and Close",
668+
SecondaryButtonText = "Don't Save and Close",
669+
TertiaryButtonText = "Cancel",
670+
Message = "You currently have unsaved changes. If you don't save, you may lose pending changes.",
671+
Title = "Unsaved Changes",
672+
});
673+
674+
await messageWindow.ShowDialog(this);
675+
676+
var result = messageWindow.DialogResult?.PressedButton ?? ButtonType.Tertiary;
677+
678+
if (result == ButtonType.Tertiary)
666679
{
667-
CloseReason = MsuProjectWindowCloseReason.CloseProject;
668680
return;
669681
}
670682

683+
if (result == ButtonType.Primary)
684+
{
685+
_service?.SaveProject();
686+
}
687+
688+
CloseReason = MsuProjectWindowCloseReason.CloseProject;
671689
_forceClose = true;
672690
Close();
673691
}

0 commit comments

Comments
 (0)