feat(ui): Task-Zeile entdichten und Kontextmenü gruppieren (UX-Struktur A)
Gruppe 1 (Send to queue, Remove from queue, Cancel execution, Open quick session, Refine task) ist jetzt fix sichtbar und gated per IsEnabled + Grund statt komplett auszublenden. Planning/Schedule wandern in Untermenüs (Mark as existierte bereits); der Planning-Kopf zeigt einen Grund, wenn er sonst leer wäre. Refine-Button, ungesetzter Star und Dequeue-X erscheinen nur bei Hover-oder-Selektion (TaskRowViewModel.ShowRowActions); ein gesetzter Star und der Refining-Spinner bleiben immer sichtbar. Der Branch-Chip wandert aus der Zeile in eine Meta-Zeile in TaskHeaderBar. A3 headless verifiziert: Avalonia 12 zeigt ToolTips auf IsEnabled=false Controls nur mit ToolTip.ShowOnDisabled="True" (Default ist false) — dieses Attached Property existiert bereits und wird für die neuen Disabled-Reason- Tooltips genutzt.
This commit is contained in:
@@ -41,7 +41,9 @@
|
||||
Classes.dragging="{Binding IsDragging}"
|
||||
Classes.drop-target="{Binding IsDropTarget}"
|
||||
Classes.done="{Binding Done}"
|
||||
ContextRequested="OnRowContextRequested">
|
||||
ContextRequested="OnRowContextRequested"
|
||||
PointerEntered="OnRowPointerEntered"
|
||||
PointerExited="OnRowPointerExited">
|
||||
<Grid ColumnDefinitions="0,18,32,*,Auto,Auto,32" Margin="6,8,10,8">
|
||||
|
||||
<!-- Chevron toggle (only for planning parent tasks) -->
|
||||
@@ -149,12 +151,18 @@
|
||||
<TextBlock Text="{Binding CreationPhaseLabel}"/>
|
||||
</Border>
|
||||
|
||||
<!-- Dequeue button (visible when row is Queued, or planning parent has queued subtasks) -->
|
||||
<!-- Dequeue button (visible when row is Queued, or planning parent has queued subtasks,
|
||||
AND the row is hovered or selected) -->
|
||||
<Button Classes="icon-btn dequeue-btn"
|
||||
IsVisible="{Binding CanRemoveFromQueue}"
|
||||
ToolTip.Tip="{loc:Tr tasks.removeFromQueueTip}"
|
||||
Command="{Binding $parent[ItemsControl].((vm:TasksIslandViewModel)DataContext).RemoveFromQueueCommand}"
|
||||
CommandParameter="{Binding}">
|
||||
<Button.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="CanRemoveFromQueue"/>
|
||||
<Binding Path="ShowRowActions"/>
|
||||
</MultiBinding>
|
||||
</Button.IsVisible>
|
||||
<PathIcon Width="10" Height="10" Data="{StaticResource Icon.X}"/>
|
||||
</Button>
|
||||
|
||||
@@ -168,16 +176,6 @@
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Branch chip -->
|
||||
<Border Classes="chip chip-branch" IsVisible="{Binding HasBranch}">
|
||||
<StackPanel Orientation="Horizontal" Spacing="4" VerticalAlignment="Center">
|
||||
<PathIcon Width="10" Height="10"
|
||||
Data="{StaticResource Icon.GitBranch}"
|
||||
Foreground="{DynamicResource TextDimBrush}"/>
|
||||
<TextBlock Text="{Binding Branch}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Diff chip -->
|
||||
<Border Classes="chip chip-diff" IsVisible="{Binding HasDiff}">
|
||||
<StackPanel Orientation="Horizontal" Spacing="4" VerticalAlignment="Center">
|
||||
@@ -203,11 +201,16 @@
|
||||
<!-- Refine button, replaced by a spinner while the refine run is in flight -->
|
||||
<Panel Grid.Column="5">
|
||||
<Button Classes="icon-btn refine-btn"
|
||||
IsVisible="{Binding CanRefine}"
|
||||
VerticalAlignment="Top" Margin="0,2,0,0"
|
||||
Command="{Binding $parent[ItemsControl].((vm:TasksIslandViewModel)DataContext).RefineTaskCommand}"
|
||||
CommandParameter="{Binding}"
|
||||
ToolTip.Tip="{loc:Tr tasks.refineTip}">
|
||||
<Button.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="CanRefine"/>
|
||||
<Binding Path="ShowRowActions"/>
|
||||
</MultiBinding>
|
||||
</Button.IsVisible>
|
||||
<Viewbox Width="16" Height="16">
|
||||
<Path Classes="plan-icon" Data="{StaticResource Icon.Refine}"/>
|
||||
</Viewbox>
|
||||
@@ -218,13 +221,19 @@
|
||||
ToolTip.Tip="{loc:Tr tasks.refiningTip}"/>
|
||||
</Panel>
|
||||
|
||||
<!-- Star toggle -->
|
||||
<!-- Star toggle: a set star always shows; unset, only on hover/selection -->
|
||||
<Button Grid.Column="6" Classes="icon-btn star-btn"
|
||||
Classes.on="{Binding IsStarred}"
|
||||
VerticalAlignment="Top" Margin="0,2,0,0"
|
||||
Command="{Binding $parent[ItemsControl].((vm:TasksIslandViewModel)DataContext).ToggleStarCommand}"
|
||||
CommandParameter="{Binding}"
|
||||
ToolTip.Tip="{loc:Tr details.starTip}">
|
||||
<Button.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.Or}">
|
||||
<Binding Path="IsStarred"/>
|
||||
<Binding Path="ShowRowActions"/>
|
||||
</MultiBinding>
|
||||
</Button.IsVisible>
|
||||
<PathIcon Width="14" Height="14" Data="{StaticResource Icon.Star}"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
Reference in New Issue
Block a user