mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-29 03:49:19 +01:00
Add "restart in safe mode" button to blocked message
This commit is contained in:
parent
999e3ea57a
commit
08f959444b
2 changed files with 192 additions and 8 deletions
|
|
@ -639,11 +639,27 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
if (DateTime.Now - this.timeLoaded > TimeSpan.FromSeconds(90) && !pluginManager.PluginsReady)
|
||||
if (DateTime.Now - this.timeLoaded > TimeSpan.FromSeconds(30) && !pluginManager.PluginsReady)
|
||||
{
|
||||
ImGuiHelpers.ScaledDummy(10);
|
||||
ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudRed);
|
||||
ImGuiHelpers.CenteredText("One of your plugins may be blocking the installer.");
|
||||
ImGuiHelpers.CenteredText("You can try restarting in safe mode, and deleting the plugin.");
|
||||
ImGui.PopStyleColor();
|
||||
|
||||
ImGuiHelpers.BeginHorizontalButtonGroup()
|
||||
.Add(
|
||||
"Restart in Safe Mode",
|
||||
() =>
|
||||
{
|
||||
var config = Service<DalamudConfiguration>.Get();
|
||||
config.PluginSafeMode = true;
|
||||
config.ForceSave();
|
||||
Dalamud.RestartGame();
|
||||
})
|
||||
.SetCentered(true)
|
||||
.WithHeight(30)
|
||||
.Draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3136,11 +3152,13 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
{
|
||||
ImGuiComponents.DisabledToggleButton(toggleId, this.loadingIndicatorKind == LoadingIndicatorKind.EnablingSingle);
|
||||
}
|
||||
else if (disabled || inMultipleProfiles || inSingleNonDefaultProfileWhichIsDisabled)
|
||||
else if (disabled || inMultipleProfiles || inSingleNonDefaultProfileWhichIsDisabled || pluginManager.SafeMode)
|
||||
{
|
||||
ImGuiComponents.DisabledToggleButton(toggleId, isLoadedAndUnloadable);
|
||||
|
||||
if (inMultipleProfiles && ImGui.IsItemHovered())
|
||||
if (pluginManager.SafeMode && ImGui.IsItemHovered())
|
||||
ImGui.SetTooltip(Locs.PluginButtonToolTip_SafeMode);
|
||||
else if (inMultipleProfiles && ImGui.IsItemHovered())
|
||||
ImGui.SetTooltip(Locs.PluginButtonToolTip_NeedsToBeInSingleProfile);
|
||||
else if (inSingleNonDefaultProfileWhichIsDisabled && ImGui.IsItemHovered())
|
||||
ImGui.SetTooltip(Locs.PluginButtonToolTip_SingleProfileDisabled(profilesThatWantThisPlugin.First().Name));
|
||||
|
|
@ -4220,6 +4238,8 @@ internal class PluginInstallerWindow : Window, IDisposable
|
|||
|
||||
public static string PluginButtonToolTip_NeedsToBeInSingleProfile => Loc.Localize("InstallerUnloadNeedsToBeInSingleProfile", "This plugin is in more than one collection. If you want to enable or disable it, please do so by enabling or disabling the collections it is in.\nIf you want to manage it here, make sure it is only in a single collection.");
|
||||
|
||||
public static string PluginButtonToolTip_SafeMode => Loc.Localize("InstallerButtonSafeModeTooltip", "Cannot enable plugins in safe mode.");
|
||||
|
||||
public static string PluginButtonToolTip_SingleProfileDisabled(string name) => Loc.Localize("InstallerSingleProfileDisabled", "The collection '{0}' which contains this plugin is disabled.\nPlease enable it in the collections manager to toggle the plugin individually.").Format(name);
|
||||
|
||||
#endregion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue