From 58753a27258a0f2bc634244fd18c4370fff354c1 Mon Sep 17 00:00:00 2001 From: goat Date: Sat, 20 Jul 2024 01:37:34 +0200 Subject: [PATCH] pi: always show available changelogs in "updateable" tab --- .../PluginInstaller/PluginInstallerWindow.cs | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs index 99dc33e44..fd9ef1044 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs @@ -2624,7 +2624,24 @@ internal class PluginInstallerWindow : Window, IDisposable var applicableChangelog = plugin.IsTesting ? remoteManifest?.Changelog : remoteManifest?.TestingChangelog; var hasChangelog = !applicableChangelog.IsNullOrWhitespace(); - var didDrawChangelogInsideCollapsible = false; + var didDrawApplicableChangelogInsideCollapsible = false; + + Version? availablePluginUpdateVersion = null; + string? availableChangelog = null; + var didDrawAvailableChangelogInsideCollapsible = false; + + if (availablePluginUpdate != default) + { + availablePluginUpdateVersion = + availablePluginUpdate.UseTesting ? + availablePluginUpdate.UpdateManifest.TestingAssemblyVersion : + availablePluginUpdate.UpdateManifest.AssemblyVersion; + + availableChangelog = + availablePluginUpdate.UseTesting ? + availablePluginUpdate.UpdateManifest.TestingChangelog : + availablePluginUpdate.UpdateManifest.Changelog; + } var flags = PluginHeaderFlags.None; if (plugin.IsThirdParty) @@ -2758,28 +2775,33 @@ internal class PluginInstallerWindow : Window, IDisposable { if (ImGui.TreeNode(Locs.PluginBody_CurrentChangeLog(plugin.EffectiveVersion))) { - didDrawChangelogInsideCollapsible = true; + didDrawApplicableChangelogInsideCollapsible = true; this.DrawInstalledPluginChangelog(applicableChangelog); ImGui.TreePop(); } } - if (availablePluginUpdate != default && !availablePluginUpdate.UpdateManifest.Changelog.IsNullOrWhitespace()) + if (!availableChangelog.IsNullOrWhitespace() && ImGui.TreeNode(Locs.PluginBody_UpdateChangeLog(availablePluginUpdateVersion))) { - var availablePluginUpdateVersion = availablePluginUpdate.UseTesting ? availablePluginUpdate.UpdateManifest.TestingAssemblyVersion : availablePluginUpdate.UpdateManifest.AssemblyVersion; - var availableChangelog = availablePluginUpdate.UseTesting ? availablePluginUpdate.UpdateManifest.TestingChangelog : availablePluginUpdate.UpdateManifest.Changelog; - if (!availableChangelog.IsNullOrWhitespace() && ImGui.TreeNode(Locs.PluginBody_UpdateChangeLog(availablePluginUpdateVersion))) - { - this.DrawInstalledPluginChangelog(availableChangelog); - ImGui.TreePop(); - } + this.DrawInstalledPluginChangelog(availableChangelog); + ImGui.TreePop(); + didDrawAvailableChangelogInsideCollapsible = true; } } - if (thisWasUpdated && hasChangelog && !didDrawChangelogInsideCollapsible) + if (thisWasUpdated && + hasChangelog && + !didDrawApplicableChangelogInsideCollapsible) { this.DrawInstalledPluginChangelog(applicableChangelog); } + + if (this.categoryManager.CurrentCategoryKind == PluginCategoryManager.CategoryKind.UpdateablePlugins && + !availableChangelog.IsNullOrWhitespace() && + !didDrawAvailableChangelogInsideCollapsible) + { + this.DrawInstalledPluginChangelog(availableChangelog); + } ImGui.PopID(); }