Webcam menu gates on the app-wide identity (TASK 26)
This commit is contained in:
@@ -212,7 +212,7 @@ public class MainViewModel : ViewModelBase
|
||||
OnPropertyChanged(nameof(ShowPreviewPlaceholder));
|
||||
OnPropertyChanged(nameof(ShowSourcesEmptyHint));
|
||||
OnPropertyChanged(nameof(CanChangeBackground));
|
||||
OnPropertyChanged(nameof(CanAddWebcamToStagedScene));
|
||||
OnPropertyChanged(nameof(CanAddWebcam));
|
||||
OnPropertyChanged(nameof(CanShowWebcamInStagedScene));
|
||||
OnPropertyChanged(nameof(IsCountdownAvailable));
|
||||
UpdateActiveBackground();
|
||||
@@ -303,8 +303,9 @@ public class MainViewModel : ViewModelBase
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The Add → Webcam menu item: enabled when the active scene doesn't show the webcam yet.</summary>
|
||||
public bool CanAddWebcamToStagedScene => StagedScene?.WebcamConfig == null;
|
||||
/// <summary>The Add → Webcam menu item: enabled only while no webcam exists anywhere —
|
||||
/// one camera identity app-wide; re-adding always opens the picker.</summary>
|
||||
public bool CanAddWebcam => StagedScene != null && _webcam == null;
|
||||
|
||||
// ─── Transitions (TASK 19/23) ───
|
||||
|
||||
@@ -344,8 +345,6 @@ public class MainViewModel : ViewModelBase
|
||||
_transition.Start(SelectedTransitionType, TransitionDurationMs, null);
|
||||
}
|
||||
|
||||
/// <summary>The Add → Webcam menu item: enabled when the active scene doesn't show the webcam yet.</summary>
|
||||
|
||||
/// <summary>
|
||||
/// Right-click-on-preview → "Show Webcam": offered when the active scene has no
|
||||
/// webcam config (add one) or hides it (unhide — keeps the config row).
|
||||
@@ -1815,7 +1814,7 @@ public class MainViewModel : ViewModelBase
|
||||
_ = _cameraManager.ReleaseAllAsync(previousDevice);
|
||||
|
||||
OnPropertyChanged(nameof(CanChangeWebcam));
|
||||
OnPropertyChanged(nameof(CanAddWebcamToStagedScene));
|
||||
OnPropertyChanged(nameof(CanAddWebcam));
|
||||
|
||||
if (_webcam == null || string.IsNullOrWhiteSpace(newDevice)) return;
|
||||
if (previousDevice != newDevice)
|
||||
@@ -2264,7 +2263,7 @@ public class MainViewModel : ViewModelBase
|
||||
if (e.OldItems != null)
|
||||
foreach (SceneElement element in e.OldItems)
|
||||
element.PropertyChanged -= OnElementPropertyChanged;
|
||||
OnPropertyChanged(nameof(CanAddWebcamToStagedScene));
|
||||
OnPropertyChanged(nameof(CanAddWebcam));
|
||||
ScheduleSave();
|
||||
}
|
||||
|
||||
@@ -2459,6 +2458,7 @@ public class MainViewModel : ViewModelBase
|
||||
{
|
||||
_webcam = new Webcam { DeviceId = device.Id, Name = device.DisplayName };
|
||||
OnPropertyChanged(nameof(CanChangeWebcam));
|
||||
OnPropertyChanged(nameof(CanAddWebcam));
|
||||
}
|
||||
else if (_webcam.DeviceId != device.Id)
|
||||
{
|
||||
@@ -2690,7 +2690,7 @@ public class MainViewModel : ViewModelBase
|
||||
{
|
||||
_webcam = null;
|
||||
OnPropertyChanged(nameof(CanChangeWebcam));
|
||||
OnPropertyChanged(nameof(CanAddWebcamToStagedScene));
|
||||
OnPropertyChanged(nameof(CanAddWebcam));
|
||||
OnPropertyChanged(nameof(CanShowWebcamInStagedScene));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user