pi: always show available changelogs in "updateable" tab

This commit is contained in:
goat 2024-07-20 01:37:34 +02:00
parent 05ec0b8c11
commit 58753a2725

View file

@ -2624,7 +2624,24 @@ internal class PluginInstallerWindow : Window, IDisposable
var applicableChangelog = plugin.IsTesting ? remoteManifest?.Changelog : remoteManifest?.TestingChangelog; var applicableChangelog = plugin.IsTesting ? remoteManifest?.Changelog : remoteManifest?.TestingChangelog;
var hasChangelog = !applicableChangelog.IsNullOrWhitespace(); 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; var flags = PluginHeaderFlags.None;
if (plugin.IsThirdParty) if (plugin.IsThirdParty)
@ -2758,28 +2775,33 @@ internal class PluginInstallerWindow : Window, IDisposable
{ {
if (ImGui.TreeNode(Locs.PluginBody_CurrentChangeLog(plugin.EffectiveVersion))) if (ImGui.TreeNode(Locs.PluginBody_CurrentChangeLog(plugin.EffectiveVersion)))
{ {
didDrawChangelogInsideCollapsible = true; didDrawApplicableChangelogInsideCollapsible = true;
this.DrawInstalledPluginChangelog(applicableChangelog); this.DrawInstalledPluginChangelog(applicableChangelog);
ImGui.TreePop(); 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; this.DrawInstalledPluginChangelog(availableChangelog);
var availableChangelog = availablePluginUpdate.UseTesting ? availablePluginUpdate.UpdateManifest.TestingChangelog : availablePluginUpdate.UpdateManifest.Changelog; ImGui.TreePop();
if (!availableChangelog.IsNullOrWhitespace() && ImGui.TreeNode(Locs.PluginBody_UpdateChangeLog(availablePluginUpdateVersion))) didDrawAvailableChangelogInsideCollapsible = true;
{
this.DrawInstalledPluginChangelog(availableChangelog);
ImGui.TreePop();
}
} }
} }
if (thisWasUpdated && hasChangelog && !didDrawChangelogInsideCollapsible) if (thisWasUpdated &&
hasChangelog &&
!didDrawApplicableChangelogInsideCollapsible)
{ {
this.DrawInstalledPluginChangelog(applicableChangelog); this.DrawInstalledPluginChangelog(applicableChangelog);
} }
if (this.categoryManager.CurrentCategoryKind == PluginCategoryManager.CategoryKind.UpdateablePlugins &&
!availableChangelog.IsNullOrWhitespace() &&
!didDrawAvailableChangelogInsideCollapsible)
{
this.DrawInstalledPluginChangelog(availableChangelog);
}
ImGui.PopID(); ImGui.PopID();
} }