diff --git a/HellionChat/Configuration.cs b/HellionChat/Configuration.cs index 557e8cb..d874a17 100755 --- a/HellionChat/Configuration.cs +++ b/HellionChat/Configuration.cs @@ -34,7 +34,7 @@ public class ConfigKeyBind [Serializable] public class Configuration : IPluginConfiguration { - private const int LatestVersion = 14; + private const int LatestVersion = 15; public int Version { get; set; } = LatestVersion; @@ -80,19 +80,6 @@ public class Configuration : IPluginConfiguration // ChatTwo users skip it because the v6→v7 migration sets the flag. public bool FirstRunCompleted; - // Hellion Chat global ImGui theme — applied to every plugin window in - // Plugin.Draw. Default ON; users who prefer the upstream Dalamud look - // can flip this off in the Privacy tab. - [Obsolete("Replaced by Theme slug + WindowOpacity in v14")] - public bool HellionThemeEnabled = true; - - // Window background opacity, 0.5–1.0. Lower values make the plugin - // panes more glass-like so the game shines through. Default 0.5 - // matches the maintainer's daily-driver preference; users who want - // a less translucent look bump it up in Aussehen → Theme. - [Obsolete("Replaced by WindowOpacity in v14")] - public float HellionThemeWindowOpacity = 0.5f; - // Use the bundled Exo 2 font (OFL-1.1) for the regular plugin font // instead of whatever GlobalFontV2.FontId points at. Default ON so a // fresh install gets the Hellion typography out-of-the-box; flip OFF @@ -336,10 +323,6 @@ public class Configuration : IPluginConfiguration RetentionLastRunAt = other.RetentionLastRunAt; FirstRunCompleted = other.FirstRunCompleted; -#pragma warning disable CS0612, CS0618 // Obsolete-Felder bleiben bis v1.2.0 als JSON-Safety-Net erhalten - HellionThemeEnabled = other.HellionThemeEnabled; - HellionThemeWindowOpacity = other.HellionThemeWindowOpacity; -#pragma warning restore CS0612, CS0618 UseHellionFont = other.UseHellionFont; // v1.1.0 theme engine fields diff --git a/HellionChat/Plugin.cs b/HellionChat/Plugin.cs index 2b58150..8a2f153 100755 --- a/HellionChat/Plugin.cs +++ b/HellionChat/Plugin.cs @@ -247,9 +247,8 @@ public sealed class Plugin : IDalamudPlugin if (Config.Version < 14) { Config.Theme = "hellion-arctic"; - #pragma warning disable CS0612, CS0618 // Obsolete: HellionThemeWindowOpacity bleibt readable bis v1.2.0 - Config.WindowOpacity = Config.HellionThemeWindowOpacity; - #pragma warning restore CS0612, CS0618 + // v1.2.0: alter Opacity-Wert wird nicht mehr migriert (Field entfernt). + // User die direkt v13 → v15 springen bekommen den Default 0.85. Config.ReduceMotion = false; Config.UseCompactDensity = false; Config.ShowThemeQuickPicker = false; @@ -260,6 +259,20 @@ public sealed class Plugin : IDalamudPlugin "pick chat2-classic in Settings → Themes for the upstream look"); } + if (Config.Version < 15) + { + // v1.2.0 — keine Datenmigration nötig. Removal der deprecated + // Theme-Felder ist reine Schema-Bereinigung (System.Text.Json + // ignoriert unbekannte Felder im JSON, daher kein Crash bei + // Configs die noch HellionThemeEnabled/HellionThemeWindowOpacity + // serialisiert haben — die Werte verfallen einfach). + Config.Version = 15; + SaveConfig(); + Log.Information( + "Migrated config v14 → v15: legacy theme fields removed " + + "(HellionThemeEnabled, HellionThemeWindowOpacity)"); + } + // Hellion v1.0.0 default tab layout. Five thematically separated // tabs: General catches the immediate-surroundings public chat // (Say/Yell/Shout) only; System absorbs the rest of the technical diff --git a/HellionChat/Ui/SettingsTabs/Appearance.cs b/HellionChat/Ui/SettingsTabs/Appearance.cs index 5cde2ee..ba07ee3 100644 --- a/HellionChat/Ui/SettingsTabs/Appearance.cs +++ b/HellionChat/Ui/SettingsTabs/Appearance.cs @@ -45,32 +45,11 @@ internal sealed class Appearance : ISettingsTab using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false)) { - // v1.1.0 — Diese Settings-UI wird in Phase J durch den dedizierten - // Themes-Tab ersetzt. Bis dahin bleiben die alten Toggles erhalten, - // damit die Settings-Seite kompiliert; sie schreiben in die mit - // [Obsolete] markierten Felder, die bis v1.2.0 als JSON-Safety-Net - // bestehen bleiben. Das pragma unterdrückt die CS0612-Warnungen - // gezielt für diesen Übergangs-Block. -#pragma warning disable CS0612, CS0618 - ImGui.Checkbox(HellionStrings.Theme_Enabled_Name, ref Mutable.HellionThemeEnabled); - ImGuiUtil.HelpMarker(HellionStrings.Theme_Enabled_Description); - - // Clamp 0.5–1.0 stays consistent with Privacy.cs which already - // shipped this slider; lower values would let chat windows - // disappear behind game UI. - using (ImRaii.Disabled(!Mutable.HellionThemeEnabled)) - { - ImGui.SetNextItemWidth(200f * ImGuiHelpers.GlobalScale); - var opacity = Mutable.HellionThemeWindowOpacity; - if (ImGui.SliderFloat($"{HellionStrings.Theme_WindowOpacity_Label}##theme-opacity", ref opacity, 0.5f, 1.0f, "%.2f")) - { - Mutable.HellionThemeWindowOpacity = Math.Clamp(opacity, 0.5f, 1.0f); - } - ImGuiUtil.HelpMarker(HellionStrings.Theme_WindowOpacity_Help); - } - - ImGui.Spacing(); - + // v1.2.0 — Legacy HellionThemeEnabled/HellionThemeWindowOpacity-Bindings + // entfernt. Theme-Auswahl + globale Window-Opacity leben jetzt in + // Settings → Themes (eingeführt mit v1.1.0). Hier verbleibt nur der + // klassische OverrideStyle-Toggle plus der Bestand-WindowAlpha-Slider + // für das Chat-Log-Fenster. ImGui.Checkbox(Language.Options_OverrideStyle_Name, ref Mutable.OverrideStyle); ImGuiUtil.HelpMarker(Language.Options_OverrideStyle_Name_Desc); @@ -79,16 +58,7 @@ internal sealed class Appearance : ISettingsTab 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); - } -#pragma warning restore CS0612, CS0618 + ImGuiUtil.DragFloatVertical(Language.Options_WindowOpacity_Name, ref Mutable.WindowAlpha, .25f, 0f, 100f, $"{Mutable.WindowAlpha:N2}%%", ImGuiSliderFlags.AlwaysClamp); } }