New Preferences "Appearance" tab: theme + show-pan/EQ moved in, tab reordering, peer-list toggles

Adds an Appearance tab (after General) and moves the colour theme and "show volume/pan/EQ tab" into
it, per Ed. New on that tab:
 * Main tab order — a list of the four main-window tabs (all shown, even when the pan/EQ tab is
   hidden) with Move up / Move down buttons to reorder them. Saved to AppConfig.MainTabOrder and
   applied by the new ApplyMainTabLayout (rebuilds the tab strip in order, dropping pan/EQ when off,
   preserving selection). Replaces RefreshPanEqTabVisibility.
 * Enable discovered / remembered peers lists on the Connectivity tab (AppConfig.ShowDiscoveredPeers
   / ShowRememberedPeers, both default on). RefreshConnectivityListVisibility hides the row's label
   and its list wrapper when off. Row labels are now captured for this.

All apply when Preferences closes. Manual updated. Build clean; --selftest passes; deployed to both
test folders. Held for next release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ednunp
2026-07-08 12:56:06 +01:00
co-authored by Claude Opus 4.8
parent 9c8e50667b
commit 78684f29f1
5 changed files with 182 additions and 26 deletions
+10
View File
@@ -80,6 +80,16 @@ public sealed class AppConfig
/// changing it takes effect on the next launch. Machine-wide, purely visual.</summary>
public string ThemeMode { get; set; } = "system";
/// <summary>The order of the main-window tabs, as tab keys ("connectivity", "audioio", "paneq",
/// "audioprofile"). Null / incomplete falls back to the default order. Set from the Preferences
/// Appearance tab. Machine-wide.</summary>
public List<string>? MainTabOrder { get; set; }
/// <summary>Whether the Discovered / Remembered peer lists appear on the Connectivity tab. Both on
/// by default; toggled on the Preferences Appearance tab.</summary>
public bool ShowDiscoveredPeers { get; set; } = true;
public bool ShowRememberedPeers { get; set; } = true;
/// <summary>The machine-wide "named peers" book — peers the user has deliberately renamed, keyed by
/// the peer's stable identity (machine name, or address for a nameless manual peer). A name applies in
/// every profile and shows wherever that peer appears. Managed via the Connectivity tab's Rename peer