Social bar (Branch B): global resource with per-scene presence — Models/Socials.cs (19 services, icons, canonical URLs), Services/SocialValidator.cs (HTTP lookup validation seam), LayoutStore schema v7 (Socials + SocialEntry tables + Scene.HasSocialBar), MainViewModel (socials collection, AddSocial/RemoveSocial/ToggleSceneSocialBar commands, freemium cap YT+1, premium seam), MainWindow.xaml (footer Social button + [+/-] toggle on meter line, preview bar rendering top/bottom + LCR), 4 integration tests (roundtrip, empty-not-persisted, canonical URLs, icons), 85 tests passing, 0 warnings

This commit is contained in:
2026-08-12 07:33:03 -07:00
parent e1d9e1388d
commit 5e8b8e5835
12 changed files with 715 additions and 17 deletions
+11
View File
@@ -12,6 +12,7 @@ public class Scene : INotifyPropertyChanged
private bool _isEditing;
private bool _isHidden;
private bool _hasBackdrop;
private bool _hasSocialBar;
public string Name
{
@@ -41,6 +42,16 @@ public class Scene : INotifyPropertyChanged
set => Set(ref _hasBackdrop, value);
}
/// <summary>
/// Whether the social bar plays on this scene. Toggled by the footer [+]/[-]
/// control — the socials themselves are a global resource (see SocialsConfig).
/// </summary>
public bool HasSocialBar
{
get => _hasSocialBar;
set => Set(ref _hasSocialBar, value);
}
/// <summary>
/// The scene's rendered elements in z-order (back to front): multi-instance
/// Sources plus this scene's webcam usage (<see cref="WebcamConfig"/>), if any.