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.enableDisableStatus = OperationStatus.InProgress;
this.loadingIndicatorKind = LoadingIndicatorKind.EnablingSingle; this.loadingIndicatorKind = LoadingIndicatorKind.EnablingSingle;
if (plugin.IsDev)
{
plugin.ReloadManifest();
}
var enableTask = Task.Run(() => plugin.Enable()) var enableTask = Task.Run(() => plugin.Enable())
.ContinueWith(this.DisplayErrorContinuation, .ContinueWith(this.DisplayErrorContinuation,
Locs.ErrorModal_EnableFail(plugin.Name)); Locs.ErrorModal_EnableFail(plugin.Name));

View file

@ -288,11 +288,7 @@ internal class LocalPlugin : IDisposable
if (reloading && this.IsDev) if (reloading && this.IsDev)
{ {
// Reload the manifest in-case there were changes here too. // Reload the manifest in-case there were changes here too.
var manifestDevFile = LocalPluginManifest.GetManifestFile(this.DllFile); this.ReloadManifest();
if (manifestDevFile.Exists)
{
this.Manifest = LocalPluginManifest.Load(manifestDevFile);
}
} }
switch (this.State) switch (this.State)
@ -627,6 +623,22 @@ internal class LocalPlugin : IDisposable
this.SaveManifest(); 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) private static void SetupLoaderConfig(LoaderConfig config)
{ {
config.IsUnloadable = true; config.IsUnloadable = true;