diff --git a/ChatTwo/Configuration.cs b/ChatTwo/Configuration.cs index 58102e5..80aec68 100755 --- a/ChatTwo/Configuration.cs +++ b/ChatTwo/Configuration.cs @@ -147,7 +147,7 @@ public class Configuration : IPluginConfiguration public LanguageOverride LanguageOverride = LanguageOverride.None; public bool CanMove = true; public bool CanResize = true; - public bool ShowTitleBar; + public bool ShowTitleBar = true; public bool ShowPopOutTitleBar = true; public bool DatabaseBattleMessages; public bool LoadPreviousSession; @@ -157,7 +157,7 @@ public class Configuration : IPluginConfiguration public bool CollapseKeepUniqueLinks; public bool PlaySounds = true; public bool KeepInputFocus = true; - public int MaxLinesToRender = 10_000; // 1-10000 + public int MaxLinesToRender = 5_000; // 1-10000 public bool Use24HourClock; public bool ShowEmotes = true; diff --git a/ChatTwo/Ui/ChatLogWindow.cs b/ChatTwo/Ui/ChatLogWindow.cs index 0ba15f6..1e60ba8 100644 --- a/ChatTwo/Ui/ChatLogWindow.cs +++ b/ChatTwo/Ui/ChatLogWindow.cs @@ -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) diff --git a/ChatTwo/Ui/Popout.cs b/ChatTwo/Ui/Popout.cs index 8871d54..c3f85ab 100644 --- a/ChatTwo/Ui/Popout.cs +++ b/ChatTwo/Ui/Popout.cs @@ -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; + } } } diff --git a/ChatTwo/Ui/SettingsTabs/Appearance.cs b/ChatTwo/Ui/SettingsTabs/Appearance.cs index def4cd4..e15e10b 100644 --- a/ChatTwo/Ui/SettingsTabs/Appearance.cs +++ b/ChatTwo/Ui/SettingsTabs/Appearance.cs @@ -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);