Merge pull request #1012 from Aireil/reload_enabling

This commit is contained in:
goat 2022-09-14 18:14:35 +02:00 committed by GitHub
commit be7c4c9717
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 5 deletions

View file

@ -2118,6 +2118,11 @@ namespace Dalamud.Interface.Internal.Windows.PluginInstaller
this.enableDisableStatus = OperationStatus.InProgress;
this.loadingIndicatorKind = LoadingIndicatorKind.EnablingSingle;
if (plugin.IsDev)
{
plugin.ReloadManifest();
}
var enableTask = Task.Run(() => plugin.Enable())
.ContinueWith(this.DisplayErrorContinuation,
Locs.ErrorModal_EnableFail(plugin.Name));

View file

@ -288,11 +288,7 @@ internal class LocalPlugin : IDisposable
if (reloading && this.IsDev)
{
// Reload the manifest in-case there were changes here too.
var manifestDevFile = LocalPluginManifest.GetManifestFile(this.DllFile);
if (manifestDevFile.Exists)
{
this.Manifest = LocalPluginManifest.Load(manifestDevFile);
}
this.ReloadManifest();
}
switch (this.State)
@ -627,6 +623,22 @@ internal class LocalPlugin : IDisposable
this.SaveManifest();
}
/// <summary>
/// Reload the manifest if it exists, preserve the internal Disabled state.
/// </summary>
public void ReloadManifest()
{
var manifest = LocalPluginManifest.GetManifestFile(this.DllFile);
if (manifest.Exists)
{
var isDisabled = this.IsDisabled; // saving the internal state because it could have been deleted
this.Manifest = LocalPluginManifest.Load(manifest);
this.Manifest.Disabled = isDisabled;
this.SaveManifest();
}
}
private static void SetupLoaderConfig(LoaderConfig config)
{
config.IsUnloadable = true;