Fix: consistent check/revert order + enable accept buttons
All three element sections (webcam border, countdown, web URI) now use consistent [✕][✓] button order. Green check buttons enabled with click handlers that save current values as snapshot baseline — revert undoes to last accepted state, not initial selection. Countdown section buttons were swapped (had [✓][✕], now [✕][✓]). Webcam and web sections already had correct visual order. 1e of 7-issue polish batch. 207 tests, 0 warnings.
This commit is contained in:
+10
-7
@@ -407,7 +407,8 @@
|
|||||||
<TextBlock Text="Border Thickness" Foreground="#a0a0b0" FontSize="11" Margin="0,0,0,2"/>
|
<TextBlock Text="Border Thickness" Foreground="#a0a0b0" FontSize="11" Margin="0,0,0,2"/>
|
||||||
<DockPanel Margin="0,0,0,6">
|
<DockPanel Margin="0,0,0,6">
|
||||||
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
||||||
IsEnabled="False" Width="22" Height="22" Margin="4,0,0,0">
|
Width="22" Height="22" Margin="4,0,0,0"
|
||||||
|
Click="WebcamBorderAccept_Click">
|
||||||
<Path Data="M4,9 L8,14 L16,4" Stroke="#22c55e" StrokeThickness="2"
|
<Path Data="M4,9 L8,14 L16,4" Stroke="#22c55e" StrokeThickness="2"
|
||||||
Width="14" Height="14" Stretch="Uniform"/>
|
Width="14" Height="14" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
@@ -430,14 +431,15 @@
|
|||||||
<TextBlock Text="Timer (minutes)" Foreground="#a0a0b0" FontSize="11" Margin="0,0,0,2"/>
|
<TextBlock Text="Timer (minutes)" Foreground="#a0a0b0" FontSize="11" Margin="0,0,0,2"/>
|
||||||
<DockPanel Margin="0,0,0,6">
|
<DockPanel Margin="0,0,0,6">
|
||||||
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
||||||
Width="22" Height="22" ToolTip="Revert"
|
Width="22" Height="22" Margin="4,0,0,0"
|
||||||
Click="CountdownRevert_Click" Margin="4,0,0,0">
|
Click="CountdownAccept_Click">
|
||||||
<Path Data="M5,5 L15,15 M15,5 L5,15" Stroke="#e94560" StrokeThickness="2"
|
<Path Data="M4,9 L8,14 L16,4" Stroke="#22c55e" StrokeThickness="2"
|
||||||
Width="14" Height="14" Stretch="Uniform"/>
|
Width="14" Height="14" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
||||||
IsEnabled="False" Width="22" Height="22" Margin="4,0,0,0">
|
Width="22" Height="22" ToolTip="Revert"
|
||||||
<Path Data="M4,9 L8,14 L16,4" Stroke="#22c55e" StrokeThickness="2"
|
Click="CountdownRevert_Click" Margin="4,0,0,0">
|
||||||
|
<Path Data="M5,5 L15,15 M15,5 L5,15" Stroke="#e94560" StrokeThickness="2"
|
||||||
Width="14" Height="14" Stretch="Uniform"/>
|
Width="14" Height="14" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Slider DockPanel.Dock="Left" Width="120" Minimum="1" Maximum="60"
|
<Slider DockPanel.Dock="Left" Width="120" Minimum="1" Maximum="60"
|
||||||
@@ -453,7 +455,8 @@
|
|||||||
<TextBlock Text="URI" Foreground="#a0a0b0" FontSize="11" Margin="0,0,0,2"/>
|
<TextBlock Text="URI" Foreground="#a0a0b0" FontSize="11" Margin="0,0,0,2"/>
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
<Button DockPanel.Dock="Right" Style="{StaticResource IconButton}"
|
||||||
IsEnabled="False" Width="22" Height="22" Margin="4,0,0,0">
|
Width="22" Height="22" Margin="4,0,0,0"
|
||||||
|
Click="WebAccept_Click">
|
||||||
<Path Data="M4,9 L8,14 L16,4" Stroke="#22c55e" StrokeThickness="2"
|
<Path Data="M4,9 L8,14 L16,4" Stroke="#22c55e" StrokeThickness="2"
|
||||||
Width="14" Height="14" Stretch="Uniform"/>
|
Width="14" Height="14" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -572,15 +572,36 @@ public partial class MainWindow : Window
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void WebcamBorderAccept_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_snapshotElement is Models.Source src)
|
||||||
|
{
|
||||||
|
_snapshotBorderColor = src.BorderColor;
|
||||||
|
_snapshotBorderWidth = src.BorderWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void CountdownRevert_Click(object sender, RoutedEventArgs e)
|
private void CountdownRevert_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (_snapshotElement is Models.Source src)
|
if (_snapshotElement is Models.Source src)
|
||||||
src.TimerMinutes = _snapshotTimerMinutes;
|
src.TimerMinutes = _snapshotTimerMinutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CountdownAccept_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_snapshotElement is Models.Source src)
|
||||||
|
_snapshotTimerMinutes = src.TimerMinutes;
|
||||||
|
}
|
||||||
|
|
||||||
private void WebRevert_Click(object sender, RoutedEventArgs e)
|
private void WebRevert_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (_snapshotElement is Models.Source src)
|
if (_snapshotElement is Models.Source src)
|
||||||
src.WebUri = _snapshotWebUri;
|
src.WebUri = _snapshotWebUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void WebAccept_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_snapshotElement is Models.Source src)
|
||||||
|
_snapshotWebUri = src.WebUri;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -828,6 +828,7 @@ No changes to `MusicPlayer`, the 0.20 cap, the ducker, or the meter zones. Build
|
|||||||
11. ✅ Elements scrollbar deselect fix — clicking the Elements panel scrollbar no longer deselects the selected element (scrollbar lives inside the ScrollViewer, not the StackPanel; guard now checks `ElementsScrollViewer` instead of `ElementsPanel`)
|
11. ✅ Elements scrollbar deselect fix — clicking the Elements panel scrollbar no longer deselects the selected element (scrollbar lives inside the ScrollViewer, not the StackPanel; guard now checks `ElementsScrollViewer` instead of `ElementsPanel`)
|
||||||
12. ✅ Web source URI + buttons inline — merged URI TextBox and check/revert buttons into a single DockPanel row (✓ rightmost, ✕ left); buttons no longer wrap to a separate line
|
12. ✅ Web source URI + buttons inline — merged URI TextBox and check/revert buttons into a single DockPanel row (✓ rightmost, ✕ left); buttons no longer wrap to a separate line
|
||||||
13. ✅ Web source URI hidden for webcam — URI section was showing for webcam due to WPF binding path `SelectedElement.Type` not resolving on `WebcamSceneConfig`; replaced with `IsWebSource` virtual property on `SceneElement` (mirrors existing `IsWebcam` pattern), overridden in `Source` to return `Type == SourceType.WebSource`, bound via `BoolToVis`
|
13. ✅ Web source URI hidden for webcam — URI section was showing for webcam due to WPF binding path `SelectedElement.Type` not resolving on `WebcamSceneConfig`; replaced with `IsWebSource` virtual property on `SceneElement` (mirrors existing `IsWebcam` pattern), overridden in `Source` to return `Type == SourceType.WebSource`, bound via `BoolToVis`
|
||||||
|
14. ✅ Check/revert consistent order + accept — all three element sections (webcam border, countdown timer, web URI) now use consistent [✕][✓] button order; green check buttons enabled with click handlers that save current values as snapshot baseline (so revert undoes to last accepted state, not initial selection)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user