- Drag-to-reorder user lists in the sidebar, persisted via a new list sort_order column (AddListSortOrder migration, backfilled by creation time) and ListRepository.ReorderAsync - "Open in Explorer" / "Open in Terminal" context-menu actions on lists - "Clear all completed" button on the Tasks island - Inline-edit subtask titles (empty text deletes the step) and click-to-copy task ID in the Details island - Make modal and planning windows resizable (BorderOnly decorations with min sizes) instead of fixed-size borderless Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
84 lines
3.3 KiB
XML
84 lines
3.3 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="using:ClaudeDo.Ui.ViewModels.Planning"
|
|
xmlns:ctl="using:ClaudeDo.Ui.Views.Controls"
|
|
x:Class="ClaudeDo.Ui.Views.Planning.PlanningDiffView"
|
|
x:DataType="vm:PlanningDiffViewModel"
|
|
Title="Planning — Combined diff"
|
|
Width="1100" Height="700" MinWidth="700" MinHeight="450"
|
|
CanResize="True"
|
|
WindowDecorations="BorderOnly"
|
|
ExtendClientAreaToDecorationsHint="True"
|
|
ExtendClientAreaTitleBarHeightHint="-1"
|
|
WindowStartupLocation="CenterOwner"
|
|
Background="{DynamicResource SurfaceBrush}">
|
|
|
|
<Window.KeyBindings>
|
|
<KeyBinding Gesture="Escape" Command="{Binding CloseCommand}"/>
|
|
</Window.KeyBindings>
|
|
|
|
<ctl:ModalShell Title="PLANNING — COMBINED DIFF" CloseCommand="{Binding CloseCommand}">
|
|
|
|
<!-- Toolbar row -->
|
|
<DockPanel>
|
|
<StackPanel DockPanel.Dock="Top"
|
|
Orientation="Horizontal"
|
|
Spacing="8"
|
|
Margin="8,6">
|
|
<ToggleButton Content="Preview combined" IsChecked="{Binding IsCombinedMode}"/>
|
|
<TextBlock Text="{Binding CombinedWarning}"
|
|
Foreground="{DynamicResource BloodBrush}"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding CombinedWarning, Converter={x:Static ObjectConverters.IsNotNull}}"/>
|
|
<TextBlock Text="Loading…"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding IsLoadingCombined}"/>
|
|
</StackPanel>
|
|
|
|
<!-- Two-pane body -->
|
|
<Grid ColumnDefinitions="240,*">
|
|
|
|
<!-- Subtask list (left pane) -->
|
|
<Border Grid.Column="0"
|
|
Classes="sidebar-pane">
|
|
<ListBox ItemsSource="{Binding Subtasks}"
|
|
SelectedItem="{Binding SelectedSubtask}"
|
|
IsEnabled="{Binding !IsCombinedMode}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SubtaskDiffRow">
|
|
<Border Padding="10,8" Background="Transparent">
|
|
<StackPanel Spacing="2">
|
|
<TextBlock Classes="title" Text="{Binding Title}"
|
|
TextTrimming="CharacterEllipsis"/>
|
|
<TextBlock Classes="meta" Text="{Binding DiffStat}"/>
|
|
</StackPanel>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Border>
|
|
|
|
<!-- Diff content (right pane) -->
|
|
<Grid Grid.Column="1" Background="{DynamicResource VoidBrush}">
|
|
<ScrollViewer HorizontalScrollBarVisibility="Auto"
|
|
VerticalScrollBarVisibility="Auto">
|
|
<TextBox Text="{Binding DisplayedDiff, Mode=OneWay}"
|
|
IsReadOnly="True"
|
|
AcceptsReturn="True"
|
|
FontFamily="{DynamicResource MonoFont}"
|
|
FontSize="{StaticResource FontSizeBody}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Padding="8"/>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
|
|
</Grid>
|
|
</DockPanel>
|
|
|
|
</ctl:ModalShell>
|
|
</Window>
|