Add additional warning to plugin config reset modal (#2005)

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
This commit is contained in:
Xpahtalo 2024-11-04 07:13:46 -08:00 committed by GitHub
parent 74ab9191d3
commit 620a802755
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -98,6 +98,7 @@ internal class PluginInstallerWindow : Window, IDisposable
private bool deletePluginConfigWarningModalDrawing = true;
private bool deletePluginConfigWarningModalOnNextFrame = false;
private bool deletePluginConfigWarningModalExplainTesting = false;
private string deletePluginConfigWarningModalPluginName = string.Empty;
private TaskCompletionSource<bool>? deletePluginConfigWarningModalTaskCompletionSource;
@ -732,7 +733,7 @@ internal class PluginInstallerWindow : Window, IDisposable
}
}
}
private void DrawFooter()
{
var configuration = Service<DalamudConfiguration>.Get();
@ -972,10 +973,11 @@ internal class PluginInstallerWindow : Window, IDisposable
}
}
private Task<bool> ShowDeletePluginConfigWarningModal(string pluginName)
private Task<bool> ShowDeletePluginConfigWarningModal(string pluginName, bool explainTesting = false)
{
this.deletePluginConfigWarningModalOnNextFrame = true;
this.deletePluginConfigWarningModalPluginName = pluginName;
this.deletePluginConfigWarningModalExplainTesting = explainTesting;
this.deletePluginConfigWarningModalTaskCompletionSource = new TaskCompletionSource<bool>();
return this.deletePluginConfigWarningModalTaskCompletionSource.Task;
}
@ -986,6 +988,13 @@ internal class PluginInstallerWindow : Window, IDisposable
if (ImGui.BeginPopupModal(modalTitle, ref this.deletePluginConfigWarningModalDrawing, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoScrollbar))
{
if (this.deletePluginConfigWarningModalExplainTesting)
{
ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudOrange);
ImGui.Text(Locs.DeletePluginConfigWarningModal_ExplainTesting());
ImGui.PopStyleColor();
}
ImGui.Text(Locs.DeletePluginConfigWarningModal_Body(this.deletePluginConfigWarningModalPluginName));
ImGui.Spacing();
@ -2898,7 +2907,7 @@ internal class PluginInstallerWindow : Window, IDisposable
if (ImGui.MenuItem(Locs.PluginContext_DeletePluginConfigReload))
{
this.ShowDeletePluginConfigWarningModal(plugin.Manifest.Name).ContinueWith(t =>
this.ShowDeletePluginConfigWarningModal(plugin.Manifest.Name, optIn != null).ContinueWith(t =>
{
var shouldDelete = t.Result;
@ -4263,7 +4272,9 @@ internal class PluginInstallerWindow : Window, IDisposable
public static string DeletePluginConfigWarningModal_Title => Loc.Localize("InstallerDeletePluginConfigWarning", "Warning###InstallerDeletePluginConfigWarning");
public static string DeletePluginConfigWarningModal_Body(string pluginName) => Loc.Localize("InstallerDeletePluginConfigWarningBody", "Are you sure you want to delete all data and configuration for {0}?").Format(pluginName);
public static string DeletePluginConfigWarningModal_ExplainTesting() => Loc.Localize("InstallerDeletePluginConfigWarningExplainTesting", "Do not select this option if you are only trying to disable testing!");
public static string DeletePluginConfigWarningModal_Body(string pluginName) => Loc.Localize("InstallerDeletePluginConfigWarningBody", "Are you sure you want to delete all data and configuration for {0}?\nYou will lose all of your settings for this plugin.").Format(pluginName);
public static string DeletePluginConfirmWarningModal_Yes => Loc.Localize("InstallerDeletePluginConfigWarningYes", "Yes");