From 3b176e68a82a13ca7ece70c0a36d80fd34a5035e Mon Sep 17 00:00:00 2001 From: Iris Scoffin Date: Sat, 20 Sep 2025 13:25:49 +0100 Subject: [PATCH] Added new option to automatically collapse the Synth Helper window --- Craftimizer/Configuration.cs | 1 + Craftimizer/Windows/Settings.cs | 9 +++++++++ Craftimizer/Windows/SynthHelper.cs | 15 +++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/Craftimizer/Configuration.cs b/Craftimizer/Configuration.cs index 2cdf1b4..7c18229 100644 --- a/Craftimizer/Configuration.cs +++ b/Craftimizer/Configuration.cs @@ -203,6 +203,7 @@ public partial class Configuration public ProgressBarType ProgressType { get; set; } = ProgressBarType.Colorful; public bool PinSynthHelperToWindow { get; set; } = true; + public bool CollapseSynthHelper { get; set; } public bool PinRecipeNoteToWindow { get; set; } = true; public MacroCopyConfiguration MacroCopy { get; set; } = new(); diff --git a/Craftimizer/Windows/Settings.cs b/Craftimizer/Windows/Settings.cs index 30de21e..d0c7454 100644 --- a/Craftimizer/Windows/Settings.cs +++ b/Craftimizer/Windows/Settings.cs @@ -920,6 +920,15 @@ public sealed class Settings : Window, IDisposable ref isDirty ); + DrawOption( + "Always Collapse Helper Window", + "Enabling this will cause the Helper Window to be collapsed whenever you start " + + "a new craft, preventing the solver from running automatically.", + Config.CollapseSynthHelper, + v => Config.CollapseSynthHelper = v, + ref isDirty + ); + DrawOption( "Automatically Suggest Macro", "(Can cause frame drops!) When navigating to a new recipe or changing your gear " + diff --git a/Craftimizer/Windows/SynthHelper.cs b/Craftimizer/Windows/SynthHelper.cs index 7527022..a456b36 100644 --- a/Craftimizer/Windows/SynthHelper.cs +++ b/Craftimizer/Windows/SynthHelper.cs @@ -112,6 +112,11 @@ public sealed unsafe class SynthHelper : Window, IDisposable private bool WasOpen { get; set; } private bool WasCollapsed { get; set; } + /// + /// Used to automatically collapse the helper window when a new craft starts. + /// + private bool ShouldCollapse { get; set; } + private bool ShouldCalculate => !IsCollapsed && ShouldOpen; private bool WasCalculatable { get; set; } @@ -203,6 +208,8 @@ public sealed unsafe class SynthHelper : Window, IDisposable { OnStartCrafting(recipeId); OnStateUpdated(); + + if (Service.Configuration.CollapseSynthHelper) ShouldCollapse = true; } if (IsRecalculateQueued) @@ -266,6 +273,13 @@ public sealed unsafe class SynthHelper : Window, IDisposable public override void Draw() { + + if (ShouldCollapse) + { + ImGui.SetWindowCollapsed(true); + ShouldCollapse = false; + } + IsCollapsed = false; DrawMacro(); @@ -285,6 +299,7 @@ public sealed unsafe class SynthHelper : Window, IDisposable private SimulationState? hoveredState; private SimulationState DisplayedState => hoveredState ?? (Service.Configuration.SynthHelperDisplayOnlyFirstStep ? Macro.FirstState : Macro.State); + private void DrawMacro() { var spacing = ImGui.GetStyle().ItemSpacing.X;