TASK 7 UI polish batch: scene/source row cleanup, dedup naming, full social handles — scenes are now pure selection rows (edit/trash/visibility icons and inline rename removed with EditSceneCommand/RemoveSceneCommand/ToggleSceneVisibilityCommand + Scene.IsEditing); source rows gained the trio (new EditElementCommand → inline rename via SceneElement.IsEditing, ToggleElementVisibilityCommand → eye flips IsVisible, open/slashed style rebound, hidden rows dim to 45%); duplicate resource names get a no-space incrementing suffix via shared NextSourceName (Image, Image2, Image3…) derived from actual names so deletions never collide (AddSource + AddReusedImage); social bar renders the full validated handle (MaxWidth=200 + TextTrimming removed from SocialBarRenderer and the preview template); side panels stay fixed 220/300; focus-loss capture lag documented in ai.md as a known OS limit (deferred) — the two real-App tests now share RealAppHost, a dedicated STA thread owning the single WPF App, instead of each calling new App(); new SourceNamingTests integration test (Text/Text2/Text3, delete-middle re-add no-collision) — 170 tests passing, 0 warnings

This commit is contained in:
2026-08-13 18:50:56 -07:00
parent 8292663791
commit d90b5ded0d
13 changed files with 333 additions and 174 deletions
+8 -8
View File
@@ -63,7 +63,7 @@ public partial class MainWindow : Window
: null;
}
private void SceneNameBox_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
private void SourceNameBox_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (sender is TextBox { IsVisible: true } box)
{
@@ -372,24 +372,24 @@ public partial class MainWindow : Window
return null;
}
private void SceneNameBox_KeyDown(object sender, KeyEventArgs e)
private void SourceNameBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key is Key.Enter or Key.Escape)
{
CommitSceneEdit(sender);
CommitSourceEdit(sender);
e.Handled = true;
}
}
private void SceneNameBox_LostFocus(object sender, RoutedEventArgs e)
private void SourceNameBox_LostFocus(object sender, RoutedEventArgs e)
{
CommitSceneEdit(sender);
CommitSourceEdit(sender);
}
private static void CommitSceneEdit(object sender)
private static void CommitSourceEdit(object sender)
{
if (sender is FrameworkElement { DataContext: Scene scene })
scene.IsEditing = false;
if (sender is FrameworkElement { DataContext: SceneElement element })
element.IsEditing = false;
}
// ─── List drag-to-reorder (scenes list + sources list) ───