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
+2 -2
View File
@@ -147,7 +147,7 @@ public class Configuration : IPluginConfiguration
public LanguageOverride LanguageOverride = LanguageOverride.None; public LanguageOverride LanguageOverride = LanguageOverride.None;
public bool CanMove = true; public bool CanMove = true;
public bool CanResize = true; public bool CanResize = true;
public bool ShowTitleBar; public bool ShowTitleBar = true;
public bool ShowPopOutTitleBar = true; public bool ShowPopOutTitleBar = true;
public bool DatabaseBattleMessages; public bool DatabaseBattleMessages;
public bool LoadPreviousSession; public bool LoadPreviousSession;
@@ -157,7 +157,7 @@ public class Configuration : IPluginConfiguration
public bool CollapseKeepUniqueLinks; public bool CollapseKeepUniqueLinks;
public bool PlaySounds = true; public bool PlaySounds = true;
public bool KeepInputFocus = true; public bool KeepInputFocus = true;
public int MaxLinesToRender = 10_000; // 1-10000 public int MaxLinesToRender = 5_000; // 1-10000
public bool Use24HourClock; public bool Use24HourClock;
public bool ShowEmotes = true; public bool ShowEmotes = true;
+10 -2
View File
@@ -451,7 +451,9 @@ public sealed class ChatLogWindow : Window
Flags |= ImGuiWindowFlags.NoTitleBar; Flags |= ImGuiWindowFlags.NoTitleBar;
if (LastViewport == ImGuiHelpers.MainViewport.Handle && !WasDocked) 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; LastViewport = ImGui.GetWindowViewport().Handle;
WasDocked = ImGui.IsWindowDocked(); WasDocked = ImGui.IsWindowDocked();
@@ -1188,7 +1190,13 @@ public sealed class ChatLogWindow : Window
if (tab.DisplayTimestamp) if (tab.DisplayTimestamp)
{ {
var localTime = message.Date.ToLocalTime(); 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 (isTable)
{ {
if (!Plugin.Config.HideSameTimestamps || timestamp != lastTimestamp) if (!Plugin.Config.HideSameTimestamps || timestamp != lastTimestamp)
+10 -2
View File
@@ -70,8 +70,16 @@ internal class Popout : Window
if (!ChatLogWindow.PopOutDocked[Idx]) if (!ChatLogWindow.PopOutDocked[Idx])
{ {
var alpha = Tab.IndependentOpacity ? Tab.Opacity : Plugin.Config.WindowAlpha; if (Tab.IndependentOpacity)
BgAlpha = alpha / 100f; {
BgAlpha = Tab.Opacity / 100f;
}
else
{
BgAlpha = Plugin.Config.HellionThemeEnabled
? Plugin.Config.HellionThemeWindowOpacity
: Plugin.Config.WindowAlpha / 100f;
}
} }
} }
+17 -5
View File
@@ -72,9 +72,17 @@ internal sealed class Appearance : ISettingsTab
DrawStyleCombo(); DrawStyleCombo();
} }
// 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); ImGuiUtil.DragFloatVertical(Language.Options_WindowOpacity_Name, ref Mutable.WindowAlpha, .25f, 0f, 100f, $"{Mutable.WindowAlpha:N2}%%", ImGuiSliderFlags.AlwaysClamp);
} }
} }
}
private void DrawStyleCombo() private void DrawStyleCombo()
{ {
@@ -111,14 +119,18 @@ internal sealed class Appearance : ISettingsTab
using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false)) 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); ImGuiUtil.HelpMarker(HellionStrings.Theme_UseHellionFont_Description);
ImGui.Spacing(); 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); using var fontDisabled = ImRaii.Disabled(Mutable.UseHellionFont);
ImGui.Checkbox(Language.Options_FontsEnabled, ref Mutable.FontsEnabled); ImGui.Checkbox(Language.Options_FontsEnabled, ref Mutable.FontsEnabled);