fix(v0.5.0): defaults and coupling issues from first walkthrough

- Configuration.cs: ShowTitleBar defaults to true so a fresh install
  shows the window header instead of leaving the user without a drag
  handle and hide button
- Configuration.cs: MaxLinesToRender default drops from 10000 to 5000
  to match the slider's intended ceiling and the previous user-tuned
  baseline
- ChatLogWindow.cs: 24h-clock checkbox now actually flips the format.
  The Bestand path passed null culture which on a German system
  locale always rendered 24h regardless of the toggle
- Appearance.cs + ChatLogWindow.cs + Popout.cs: when Hellion theme is
  enabled the global theme opacity drives the chat-window BgAlpha and
  the legacy WindowAlpha slider is disabled, so the two opacity
  controls no longer fight each other
- Appearance.cs: ticking UseHellionFont now flips FontsEnabled off so
  the two mutually-exclusive font stacks no longer appear active at
  the same time
This commit is contained in:
2026-05-02 18:00:04 +02:00
parent 50963ccf1b
commit 2201478a54
4 changed files with 40 additions and 12 deletions
+10 -2
View File
@@ -451,7 +451,9 @@ public sealed class ChatLogWindow : Window
Flags |= ImGuiWindowFlags.NoTitleBar;
if (LastViewport == ImGuiHelpers.MainViewport.Handle && !WasDocked)
BgAlpha = Plugin.Config.WindowAlpha / 100f;
BgAlpha = Plugin.Config.HellionThemeEnabled
? Plugin.Config.HellionThemeWindowOpacity
: Plugin.Config.WindowAlpha / 100f;
LastViewport = ImGui.GetWindowViewport().Handle;
WasDocked = ImGui.IsWindowDocked();
@@ -1188,7 +1190,13 @@ public sealed class ChatLogWindow : Window
if (tab.DisplayTimestamp)
{
var localTime = message.Date.ToLocalTime();
var timestamp = localTime.ToString("t", !Plugin.Config.Use24HourClock ? null : CultureInfo.CreateSpecificCulture("de-DE"));
// Force the format explicitly per setting. Relying on the
// current culture meant a German system locale always
// produced 24h regardless of the toggle, so the checkbox
// looked dead.
var timestamp = Plugin.Config.Use24HourClock
? localTime.ToString("HH:mm", CultureInfo.InvariantCulture)
: localTime.ToString("h:mm tt", CultureInfo.InvariantCulture);
if (isTable)
{
if (!Plugin.Config.HideSameTimestamps || timestamp != lastTimestamp)
+10 -2
View File
@@ -70,8 +70,16 @@ internal class Popout : Window
if (!ChatLogWindow.PopOutDocked[Idx])
{
var alpha = Tab.IndependentOpacity ? Tab.Opacity : Plugin.Config.WindowAlpha;
BgAlpha = alpha / 100f;
if (Tab.IndependentOpacity)
{
BgAlpha = Tab.Opacity / 100f;
}
else
{
BgAlpha = Plugin.Config.HellionThemeEnabled
? Plugin.Config.HellionThemeWindowOpacity
: Plugin.Config.WindowAlpha / 100f;
}
}
}
+18 -6
View File
@@ -72,7 +72,15 @@ internal sealed class Appearance : ISettingsTab
DrawStyleCombo();
}
ImGuiUtil.DragFloatVertical(Language.Options_WindowOpacity_Name, ref Mutable.WindowAlpha, .25f, 0f, 100f, $"{Mutable.WindowAlpha:N2}%%", ImGuiSliderFlags.AlwaysClamp);
// The Bestand-Slider WindowAlpha targets the chat log window's
// background only. The Hellion theme opacity above already covers
// every plugin window globally, so the two sliders fight each
// other when the theme is active. Disable the legacy slider in
// that case to make Hellion theme the single source of truth.
using (ImRaii.Disabled(Mutable.HellionThemeEnabled))
{
ImGuiUtil.DragFloatVertical(Language.Options_WindowOpacity_Name, ref Mutable.WindowAlpha, .25f, 0f, 100f, $"{Mutable.WindowAlpha:N2}%%", ImGuiSliderFlags.AlwaysClamp);
}
}
}
@@ -111,14 +119,18 @@ internal sealed class Appearance : ISettingsTab
using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false))
{
ImGui.Checkbox(HellionStrings.Theme_UseHellionFont_Name, ref Mutable.UseHellionFont);
if (ImGui.Checkbox(HellionStrings.Theme_UseHellionFont_Name, ref Mutable.UseHellionFont))
{
// Mutex with the Bestand custom-font stack. Leaving FontsEnabled
// checked alongside UseHellionFont made both checkboxes look
// active even though the lower stack was greyed out, which
// confused the user during the v0.5.0 walkthrough.
if (Mutable.UseHellionFont)
Mutable.FontsEnabled = false;
}
ImGuiUtil.HelpMarker(HellionStrings.Theme_UseHellionFont_Description);
ImGui.Spacing();
// Hellion-Font und der Custom-Font-Stack schließen sich aus:
// wenn Exo 2 erzwungen wird, sind die ChatTwo-Font-Picker
// ohne Wirkung, also UI-seitig ausgrauen statt versteckt
// weiterzuwerken.
using var fontDisabled = ImRaii.Disabled(Mutable.UseHellionFont);
ImGui.Checkbox(Language.Options_FontsEnabled, ref Mutable.FontsEnabled);