Rename pull-out tab to 'Stream Settings'; right-click Start Stream → Change Account / Logout

This commit is contained in:
2026-08-26 09:35:07 -07:00
parent d4aa5e1003
commit 67baac6fdd
2 changed files with 21 additions and 3 deletions
+11 -3
View File
@@ -169,7 +169,15 @@
<!-- Start Stream button (connected + offline) --> <!-- Start Stream button (connected + offline) -->
<Button Content="Start Stream" Style="{StaticResource YtButton}" <Button Content="Start Stream" Style="{StaticResource YtButton}"
Command="{Binding StartStreamCommand}" Command="{Binding StartStreamCommand}"
Visibility="{Binding ShowStartStream, Converter={StaticResource BoolToVis}}"/> Visibility="{Binding ShowStartStream, Converter={StaticResource BoolToVis}}">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Change Account" Command="{Binding ChangeAccountCommand}"/>
<Separator/>
<MenuItem Header="Logout" Command="{Binding LogoutCommand}"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
<!-- End Stream button (live) --> <!-- End Stream button (live) -->
<Button Content="End Stream" Style="{StaticResource YtButton}" <Button Content="End Stream" Style="{StaticResource YtButton}"
Background="#333" Command="{Binding EndStreamCommand}" Background="#333" Command="{Binding EndStreamCommand}"
@@ -1122,7 +1130,7 @@
</Grid> </Grid>
<!-- ═══ BROADCAST TEXT PULL-OUT (always visible) ═══ <!-- ═══ BROADCAST TEXT PULL-OUT (always visible) ═══
White "Text" tab on the preview's right edge; clicking it White "Stream Settings" tab on the preview's right edge; clicking it
toggles the broadcast-metadata form, and any click outside toggles the broadcast-metadata form, and any click outside
the form collapses it. Edits persist locally immediately; the form collapses it. Edits persist locally immediately;
Update pushes liveBroadcasts.update. --> Update pushes liveBroadcasts.update. -->
@@ -1225,7 +1233,7 @@
<MouseBinding Gesture="LeftClick" <MouseBinding Gesture="LeftClick"
Command="{Binding BroadcastForm.ToggleDrawerCommand}"/> Command="{Binding BroadcastForm.ToggleDrawerCommand}"/>
</Border.InputBindings> </Border.InputBindings>
<TextBlock Text="Text" Foreground="#e94560" FontWeight="Bold" FontSize="15" <TextBlock Text="Stream Settings" Foreground="#e94560" FontWeight="Bold" FontSize="15"
HorizontalAlignment="Center"> HorizontalAlignment="Center">
<TextBlock.LayoutTransform> <TextBlock.LayoutTransform>
<RotateTransform Angle="90"/> <RotateTransform Angle="90"/>
+10
View File
@@ -1526,6 +1526,8 @@ public class MainViewModel : ViewModelBase
public ICommand ActivateLicenseCommand { get; } public ICommand ActivateLicenseCommand { get; }
public ICommand OpenLicenseEntryCommand { get; } public ICommand OpenLicenseEntryCommand { get; }
public ICommand OpenHotkeyConfigCommand { get; } public ICommand OpenHotkeyConfigCommand { get; }
public ICommand ChangeAccountCommand { get; }
public ICommand LogoutCommand { get; }
public MainViewModel() public MainViewModel()
{ {
@@ -1600,6 +1602,8 @@ public class MainViewModel : ViewModelBase
ActivateLicenseCommand = new RelayCommand(_ => _ = ActivateLicenseAsync(), _ => !IsLicenseValidating); ActivateLicenseCommand = new RelayCommand(_ => _ = ActivateLicenseAsync(), _ => !IsLicenseValidating);
OpenLicenseEntryCommand = new RelayCommand(_ => IsLicenseEntryOpen = !IsLicenseEntryOpen); OpenLicenseEntryCommand = new RelayCommand(_ => IsLicenseEntryOpen = !IsLicenseEntryOpen);
OpenHotkeyConfigCommand = new RelayCommand(_ => OpenHotkeyConfig()); OpenHotkeyConfigCommand = new RelayCommand(_ => OpenHotkeyConfig());
ChangeAccountCommand = new RelayCommand(_ => _ = ChangeAccountAsync());
LogoutCommand = new RelayCommand(_ => _ = SignOutYouTubeAsync());
_layoutStore = new LayoutStore(LayoutPathOverride ?? DefaultLayoutPath); _layoutStore = new LayoutStore(LayoutPathOverride ?? DefaultLayoutPath);
_activeLayoutPath = _layoutStore.ActivePath; _activeLayoutPath = _layoutStore.ActivePath;
@@ -3591,4 +3595,10 @@ public class MainViewModel : ViewModelBase
AppLog.Write("Socials: signed out of YouTube"); AppLog.Write("Socials: signed out of YouTube");
await Task.CompletedTask; await Task.CompletedTask;
} }
private async Task ChangeAccountAsync()
{
await SignOutYouTubeAsync();
await SignInAsync();
}
} }