feat(config): bump schema to v20 with style-refactor visibility fields

Adds MainWindowOpen, SettingsWindowOpen, MaxParallelPopouts (channel popout
pool size), TellAutoOpenMode (Off/Sidebar/TopTab/Popout) and
SidebarAutoSwitchThresholdPx. Migration is additive — field initializers
fill defaults for v19 configs, the Plugin.cs schema gate bumps the version
stamp after load. UpdateFrom gets explicit sync statements for all five so
settings-save edits do not drop them.
This commit is contained in:
2026-05-23 18:08:34 +02:00
parent 620dfe9ea0
commit 53ed154103
2 changed files with 31 additions and 6 deletions
+6 -5
View File
@@ -200,11 +200,12 @@ public sealed class Plugin : IAsyncDalamudPlugin
// do not touch either static, so the brief null-window is safe.
// Schema gate: v1.4.x+ requires config v16+. Users on older schemas
// must install v1.4.2 first to run the migration chain. v19 adds the
// must install v1.4.2 first to run the migration chain. v19 added the
// top-level CustomSoundVolume, WindowOpacityInactive, WorldSuffixMode
// and NameFormMode fields — all additive with defaults, so v16-v18
// configs load cleanly and get their Version stamp bumped after the
// gate.
// and NameFormMode fields; v20 adds MainWindowOpen, SettingsWindowOpen,
// MaxParallelPopouts, TellAutoOpenMode and SidebarAutoSwitchThresholdPx
// — all additive with defaults, so v16-v19 configs load cleanly and
// get their Version stamp bumped after the gate.
if (Config.Version < 16)
{
throw new InvalidOperationException(
@@ -212,7 +213,7 @@ public sealed class Plugin : IAsyncDalamudPlugin
+ "Please install v1.4.2 first to migrate the configuration, then upgrade to v1.4.10."
);
}
Config.Version = 19;
Config.Version = 20;
// Unpinned TempTabs are session-only and dropped on every load. Pinned
// TempTabs survive reload — Jin's tester feedback (v1.4.7).