Social bar v2: fediverse icons resolved via nodeinfo (with redirect-following), persisted software column, icon colors — 112 tests passing, 0 warnings

This commit is contained in:
2026-08-12 18:28:59 -07:00
parent db5fc06174
commit 9873eeda7d
18 changed files with 1878 additions and 321 deletions
+26 -37
View File
@@ -652,13 +652,22 @@
</Viewbox>
</Grid>
<!-- Social bar: horizontal chip row at the top or bottom of the
frame, justified LCR. Global resource, shown per-scene. -->
<Grid Width="1920" Canvas.Top="{Binding SocialBarTop}" IsHitTestVisible="False"
Visibility="{Binding SceneHasSocialBar, Converter={StaticResource BoolToVis}}">
<!-- Social bar: one centered horizontal row at the top or bottom of
the frame, green glow while enabled. Global resource — never a
Source, no Sources entry. Dragging snaps to the nearest edge. -->
<Grid x:Name="SocialBarElement" Width="1920" Canvas.Top="{Binding SocialBarTop}"
Background="Transparent"
Visibility="{Binding SocialBarVisible, Converter={StaticResource BoolToVis}}"
PreviewMouseLeftButtonDown="SocialBar_PreviewMouseLeftButtonDown"
PreviewMouseMove="SocialBar_PreviewMouseMove"
PreviewMouseLeftButtonUp="SocialBar_PreviewMouseLeftButtonUp">
<Grid.Effect>
<DropShadowEffect Color="{Binding SocialBarGlowBrush.Color}"
BlurRadius="18" ShadowDepth="0" Opacity="0.9"/>
</Grid.Effect>
<ItemsControl ItemsSource="{Binding Socials.Entries}"
HorizontalAlignment="{Binding SocialBarAlign}"
Margin="40,8">
HorizontalAlignment="Center" Margin="40,8"
IsHitTestVisible="False">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
@@ -667,19 +676,13 @@
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,20,0">
<Border Width="28" Height="28" CornerRadius="14"
Background="{Binding AccentColor}"
VerticalAlignment="Center">
<TextBlock Text="{Binding Initials}" Foreground="White"
FontSize="11" FontWeight="Bold"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<Path Data="{Binding LogoData}" Fill="White" Width="24" Height="24"
Stretch="Uniform" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Handle}" Foreground="White"
FontSize="14" VerticalAlignment="Center"
Margin="8,0,0,0"
TextTrimming="CharacterEllipsis"
MaxWidth="200"/>
TextTrimming="CharacterEllipsis"
MaxWidth="200"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
@@ -810,29 +813,15 @@
<!-- Social controls: centered under the scenes/sources listboxes -->
<StackPanel Grid.Column="0" Orientation="Horizontal"
HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="Social" Command="{Binding OpenSocialDialogCommand}"
<Button Command="{Binding OpenSocialDialogCommand}"
Style="{StaticResource YtButtonSecondary}" Padding="12,4"
FontSize="11" VerticalAlignment="Center"
ToolTip="Add or manage your social handles"/>
<Button Command="{Binding ToggleSceneSocialBarCommand}"
Visibility="{Binding CanToggleSceneSocialBar, Converter={StaticResource BoolToVis}}"
Style="{StaticResource IconButton}" Width="28" Height="28" Margin="4,0,0,0"
VerticalAlignment="Center" FontSize="16" FontWeight="Bold"
ToolTip="Add or remove the social bar on this scene">
<Button.Content>
<TextBlock FontSize="16" FontWeight="Bold">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="+"/>
<Style.Triggers>
<DataTrigger Binding="{Binding SceneHasSocialBar}" Value="True">
<Setter Property="Text" Value=""/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Button.Content>
ToolTip="Add or manage your social handles">
<StackPanel Orientation="Horizontal">
<Ellipse Width="8" Height="8" Fill="{Binding SocialBarDotBrush}"
Margin="0,0,6,0" VerticalAlignment="Center"/>
<TextBlock Text="Socials"/>
</StackPanel>
</Button>
</StackPanel>