diff --git a/LightlessSync/Changelog/changelog.yaml b/LightlessSync/Changelog/changelog.yaml index 98134a1..2cdbf6a 100644 --- a/LightlessSync/Changelog/changelog.yaml +++ b/LightlessSync/Changelog/changelog.yaml @@ -4,7 +4,8 @@ changelog: - name: "v1.12.3" tagline: "FILLER" date: "October 15th 2025" - is_current: true + # be sure to set this every new version + isCurrent: true versions: - number: "New Features" icon: "" @@ -22,7 +23,6 @@ changelog: - name: "v1.12.2" tagline: "LightFinder fixes, Notifications overhaul" date: "October 12th 2025" - is_current: false versions: - number: "LightFinder" icon: "" @@ -50,7 +50,6 @@ changelog: - name: "v1.12.1" tagline: "LightFinder customization and download limiter" date: "October 8th 2025" - is_current: false versions: - number: "New Features" icon: "" @@ -69,7 +68,6 @@ changelog: - name: "v1.12.0" tagline: "LightFinder - Major feature release" date: "October 5th 2025" - is_current: false versions: - number: "Major Features" icon: "" @@ -96,7 +94,6 @@ changelog: - name: "v1.11.12" tagline: "Syncshell grouping and performance options" date: "September 16th 2025" - is_current: false versions: - number: "New Features" icon: "" @@ -118,7 +115,6 @@ changelog: - name: "v1.11.9" tagline: "File cache improvements" date: "September 13th 2025" - is_current: false versions: - number: "Bug Fixes" icon: "" @@ -129,7 +125,6 @@ changelog: - name: "v1.11.8" tagline: "Hotfix - UI and exception handling" date: "September 12th 2025" - is_current: false versions: - number: "Bug Fixes" icon: "" @@ -141,7 +136,6 @@ changelog: - name: "v1.11.7" tagline: "Hotfix - UI loading and warnings" date: "September 12th 2025" - is_current: false versions: - number: "Bug Fixes" icon: "" @@ -152,7 +146,6 @@ changelog: - name: "v1.11.6" tagline: "Admin panel rework and new features" date: "September 11th 2025" - is_current: false versions: - number: "New Features" icon: "" diff --git a/LightlessSync/UI/UpdateNotesUi.cs b/LightlessSync/UI/UpdateNotesUi.cs index ab35177..57dd173 100644 --- a/LightlessSync/UI/UpdateNotesUi.cs +++ b/LightlessSync/UI/UpdateNotesUi.cs @@ -26,6 +26,7 @@ public class UpdateNotesUi : WindowMediatorSubscriberBase private CreditsFile _credits = new(); private bool _scrollToTop; private int _selectedTab; + private bool _hasInitializedCollapsingHeaders; private struct Particle { @@ -65,6 +66,7 @@ public class UpdateNotesUi : WindowMediatorSubscriberBase PerformanceCollectorService performanceCollectorService) : base(logger, mediator, "Lightless Sync — Update Notes", performanceCollectorService) { + logger.LogInformation("UpdateNotesUi constructor called"); _uiShared = uiShared; _configService = configService; @@ -82,11 +84,13 @@ public class UpdateNotesUi : WindowMediatorSubscriberBase }; LoadEmbeddedResources(); + logger.LogInformation("UpdateNotesUi constructor completed successfully"); } public override void OnOpen() { _scrollToTop = true; + _hasInitializedCollapsingHeaders = false; } protected override void DrawInternal() @@ -108,7 +112,6 @@ public class UpdateNotesUi : WindowMediatorSubscriberBase var headerStart = windowPos + new Vector2(windowPadding.X, windowPadding.Y); var headerEnd = headerStart + new Vector2(headerWidth, HeaderHeight); - var headerSize = new Vector2(headerWidth, HeaderHeight); var extendedParticleSize = new Vector2(headerWidth, HeaderHeight + ExtendedParticleHeight); @@ -610,6 +613,8 @@ public class UpdateNotesUi : WindowMediatorSubscriberBase { DrawChangelogEntry(entry); } + + _hasInitializedCollapsingHeaders = true; ImGui.PopTextWrapPos(); ImGui.Spacing(); @@ -618,28 +623,32 @@ public class UpdateNotesUi : WindowMediatorSubscriberBase private void DrawChangelogEntry(ChangelogEntry entry) { - var currentColor = entry.IsCurrent == true + var isCurrent = entry.IsCurrent ?? false; + + var currentColor = isCurrent ? UIColors.Get("LightlessGreen") : new Vector4(0.95f, 0.95f, 1.0f, 1.0f); - - var flags = entry.IsCurrent == true - ? ImGuiTreeNodeFlags.DefaultOpen - : ImGuiTreeNodeFlags.None; - + + var flags = isCurrent ? ImGuiTreeNodeFlags.DefaultOpen : ImGuiTreeNodeFlags.None; + + if (!_hasInitializedCollapsingHeaders) + { + ImGui.SetNextItemOpen(isCurrent, ImGuiCond.Always); + } + + bool isOpen; using (ImRaii.PushStyle(ImGuiStyleVar.FrameRounding, 4f)) using (ImRaii.PushColor(ImGuiCol.Header, UIColors.Get("ButtonDefault"))) - using (ImRaii.PushColor(ImGuiCol.HeaderHovered, UIColors.Get("LightlessPurple"))) - using (ImRaii.PushColor(ImGuiCol.HeaderActive, UIColors.Get("LightlessPurpleActive"))) using (ImRaii.PushColor(ImGuiCol.Text, currentColor)) { - var isOpen = ImGui.CollapsingHeader($" {entry.Name} — {entry.Date} ", flags); + isOpen = ImGui.CollapsingHeader($" {entry.Name} — {entry.Date} ", flags); ImGui.SameLine(); ImGui.TextColored(new Vector4(0.85f, 0.85f, 0.95f, 1.0f), $" — {entry.Tagline}"); - - if (!isOpen) - return; } + + if (!isOpen) + return; ImGuiHelpers.ScaledDummy(8);