style(claude-do): merge Material icons: shared controls + modals (incl. Unicode glyp
ClaudeDo-Task: 4d7d12b8-bdb2-44c1-be41-8975740bbcc0
This commit is contained in:
@@ -106,12 +106,16 @@
|
|||||||
<!-- Toolbar: change nav · file switcher · readout -->
|
<!-- Toolbar: change nav · file switcher · readout -->
|
||||||
<Grid Grid.Row="2" ColumnDefinitions="Auto,Auto,Auto,*,Auto,Auto" Margin="0,0,0,8"
|
<Grid Grid.Row="2" ColumnDefinitions="Auto,Auto,Auto,*,Auto,Auto" Margin="0,0,0,8"
|
||||||
IsVisible="{Binding HasCurrent}">
|
IsVisible="{Binding HasCurrent}">
|
||||||
<Button Grid.Column="0" Classes="btn" Content="↑" Margin="0,0,4,0" Padding="10,4"
|
<Button Grid.Column="0" Classes="btn" Margin="0,0,4,0" Padding="10,4"
|
||||||
ToolTip.Tip="{loc:Tr conflictResolver.prevConflict}"
|
ToolTip.Tip="{loc:Tr conflictResolver.prevConflict}"
|
||||||
Command="{Binding PreviousCommand}"/>
|
Command="{Binding PreviousCommand}">
|
||||||
<Button Grid.Column="1" Classes="btn" Content="↓" Margin="0,0,12,0" Padding="10,4"
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:ChevronUp', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
|
<Button Grid.Column="1" Classes="btn" Margin="0,0,12,0" Padding="10,4"
|
||||||
ToolTip.Tip="{loc:Tr conflictResolver.nextConflict}"
|
ToolTip.Tip="{loc:Tr conflictResolver.nextConflict}"
|
||||||
Command="{Binding NextCommand}"/>
|
Command="{Binding NextCommand}">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:ChevronDown', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
<ComboBox Grid.Column="2" MinWidth="240" MaxWidth="520"
|
<ComboBox Grid.Column="2" MinWidth="240" MaxWidth="520"
|
||||||
ItemsSource="{Binding Files}"
|
ItemsSource="{Binding Files}"
|
||||||
SelectedItem="{Binding ActiveFile, Mode=TwoWay}">
|
SelectedItem="{Binding ActiveFile, Mode=TwoWay}">
|
||||||
|
|||||||
@@ -13,8 +13,10 @@
|
|||||||
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
||||||
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.model}" VerticalAlignment="Center"/>
|
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.model}" VerticalAlignment="Center"/>
|
||||||
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding ModelBadge}"/>
|
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding ModelBadge}"/>
|
||||||
<Button Grid.Column="3" Classes="icon-btn" Content="↺" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
<Button Grid.Column="3" Classes="icon-btn" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
||||||
Command="{Binding ResetModelCommand}"/>
|
Command="{Binding ResetModelCommand}">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:Restore', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<ComboBox ItemsSource="{Binding ModelOptions}"
|
<ComboBox ItemsSource="{Binding ModelOptions}"
|
||||||
SelectedItem="{Binding Model, Mode=TwoWay}"
|
SelectedItem="{Binding Model, Mode=TwoWay}"
|
||||||
@@ -27,8 +29,10 @@
|
|||||||
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
||||||
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.maxTurns}" VerticalAlignment="Center"/>
|
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.maxTurns}" VerticalAlignment="Center"/>
|
||||||
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding TurnsBadge}"/>
|
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding TurnsBadge}"/>
|
||||||
<Button Grid.Column="3" Classes="icon-btn" Content="↺" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
<Button Grid.Column="3" Classes="icon-btn" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
||||||
Command="{Binding ResetTurnsCommand}"/>
|
Command="{Binding ResetTurnsCommand}">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:Restore', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<NumericUpDown Value="{Binding MaxTurns, Mode=TwoWay}"
|
<NumericUpDown Value="{Binding MaxTurns, Mode=TwoWay}"
|
||||||
PlaceholderText="{Binding TurnsInheritedHint}"
|
PlaceholderText="{Binding TurnsInheritedHint}"
|
||||||
@@ -44,8 +48,10 @@
|
|||||||
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
||||||
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.permissionMode}" VerticalAlignment="Center"/>
|
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.permissionMode}" VerticalAlignment="Center"/>
|
||||||
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding PermissionBadge}"/>
|
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding PermissionBadge}"/>
|
||||||
<Button Grid.Column="3" Classes="icon-btn" Content="↺" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
<Button Grid.Column="3" Classes="icon-btn" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
||||||
Command="{Binding ResetPermissionModeCommand}"/>
|
Command="{Binding ResetPermissionModeCommand}">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:Restore', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<ComboBox ItemsSource="{Binding PermissionModeOptions}"
|
<ComboBox ItemsSource="{Binding PermissionModeOptions}"
|
||||||
SelectedItem="{Binding PermissionMode, Mode=TwoWay}"
|
SelectedItem="{Binding PermissionMode, Mode=TwoWay}"
|
||||||
@@ -71,8 +77,10 @@
|
|||||||
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
<Grid ColumnDefinitions="Auto,Auto,*,Auto" ColumnSpacing="6">
|
||||||
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.agentFile}" VerticalAlignment="Center"/>
|
<TextBlock Grid.Column="0" Classes="field-label" Text="{loc:Tr settings.agentEditor.agentFile}" VerticalAlignment="Center"/>
|
||||||
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding AgentBadge}"/>
|
<ctl:InheritedBadge Grid.Column="1" BadgeText="{Binding AgentBadge}"/>
|
||||||
<Button Grid.Column="3" Classes="icon-btn" Content="↺" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
<Button Grid.Column="3" Classes="icon-btn" ToolTip.Tip="{loc:Tr settings.inherit.resetToInherited}"
|
||||||
Command="{Binding ResetAgentCommand}"/>
|
Command="{Binding ResetAgentCommand}">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:Restore', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid ColumnDefinitions="*,Auto">
|
<Grid ColumnDefinitions="*,Auto">
|
||||||
<ComboBox Grid.Column="0"
|
<ComboBox Grid.Column="0"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
@@ -8,6 +9,7 @@ using Avalonia.Layout;
|
|||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
using Avalonia.Media;
|
using Avalonia.Media;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
|
using ClaudeDo.Ui.Converters;
|
||||||
using ClaudeDo.Ui.Localization;
|
using ClaudeDo.Ui.Localization;
|
||||||
|
|
||||||
namespace ClaudeDo.Ui.Views.Controls;
|
namespace ClaudeDo.Ui.Views.Controls;
|
||||||
@@ -243,12 +245,13 @@ public partial class MarkdownView : UserControl
|
|||||||
return grid;
|
return grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Geometry? MdiGeometry(string kind) =>
|
||||||
|
(Geometry?)IconKeyConverter.Instance.Convert("mdi:" + kind, typeof(Geometry), null, CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
private Button CopyButton(string command)
|
private Button CopyButton(string command)
|
||||||
{
|
{
|
||||||
var copyIcon = new PathIcon { Width = 11, Height = 11 };
|
var copyIcon = new PathIcon { Width = 11, Height = 11, Data = MdiGeometry("ContentCopy") };
|
||||||
copyIcon.Bind(PathIcon.DataProperty, this.GetResourceObservable("Icon.Copy"));
|
var checkIcon = new PathIcon { Width = 11, Height = 11, Data = MdiGeometry("Check") };
|
||||||
var checkIcon = new PathIcon { Width = 11, Height = 11 };
|
|
||||||
checkIcon.Bind(PathIcon.DataProperty, this.GetResourceObservable("Icon.Check"));
|
|
||||||
|
|
||||||
var button = new Button
|
var button = new Button
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
<PathIcon Grid.Column="0" Width="14" Height="14"
|
<PathIcon Grid.Column="0" Width="14" Height="14"
|
||||||
Margin="0,0,8,0"
|
Margin="0,0,8,0"
|
||||||
Foreground="{DynamicResource TextDimBrush}"
|
Foreground="{DynamicResource TextDimBrush}"
|
||||||
Data="M19,4H18V2H16V4H8V2H6V4H5A2,2 0 0,0 3,6V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V6A2,2 0 0,0 19,4M19,20H5V10H19V20M19,8H5V6H19V8Z"/>
|
Data="{Binding Source='mdi:CalendarBlankOutline', Converter={StaticResource IconKey}}"/>
|
||||||
<TextBlock Grid.Column="1"
|
<TextBlock Grid.Column="1"
|
||||||
Text="{Binding #Root.DisplayText}"
|
Text="{Binding #Root.DisplayText}"
|
||||||
Foreground="{Binding #Root.DisplayForeground}"
|
Foreground="{Binding #Root.DisplayForeground}"
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
<PathIcon Grid.Column="2" Width="10" Height="10"
|
<PathIcon Grid.Column="2" Width="10" Height="10"
|
||||||
Margin="8,0,0,0"
|
Margin="8,0,0,0"
|
||||||
Foreground="{DynamicResource TextMuteBrush}"
|
Foreground="{DynamicResource TextMuteBrush}"
|
||||||
Data="M7,10L12,15L17,10H7Z"/>
|
Data="{Binding Source='mdi:MenuDown', Converter={StaticResource IconKey}}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|
||||||
@@ -133,11 +133,15 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid ColumnDefinitions="Auto,*,Auto" Margin="0,2,0,0">
|
<Grid ColumnDefinitions="Auto,*,Auto" Margin="0,2,0,0">
|
||||||
<Button Grid.Column="0" Click="OnPrevMonthClick" Classes="nav" Content="◀"/>
|
<Button Grid.Column="0" Click="OnPrevMonthClick" Classes="nav">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:ChevronLeft', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
<TextBlock Grid.Column="1" x:Name="MonthHeader" Classes="title"
|
<TextBlock Grid.Column="1" x:Name="MonthHeader" Classes="title"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
VerticalAlignment="Center"/>
|
VerticalAlignment="Center"/>
|
||||||
<Button Grid.Column="2" Click="OnNextMonthClick" Classes="nav" Content="▶"/>
|
<Button Grid.Column="2" Click="OnNextMonthClick" Classes="nav">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:ChevronRight', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<UniformGrid Columns="7" x:Name="WeekdayHeaders"/>
|
<UniformGrid Columns="7" x:Name="WeekdayHeaders"/>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
<ToggleButton Classes="icon-btn" IsChecked="{Binding WrapLines}"
|
<ToggleButton Classes="icon-btn" IsChecked="{Binding WrapLines}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
ToolTip.Tip="{loc:Tr modals.diff.wrapLines}">
|
ToolTip.Tip="{loc:Tr modals.diff.wrapLines}">
|
||||||
<PathIcon Data="{StaticResource Icon.Wrap}" Width="14" Height="14"/>
|
<PathIcon Data="{Binding Source='mdi:Wrap', Converter={StaticResource IconKey}}" Width="14" Height="14"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
<ctl:OperationIndicator Status="{Binding ParseOp}"/>
|
<ctl:OperationIndicator Status="{Binding ParseOp}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -349,10 +349,12 @@
|
|||||||
<TextBlock Classes="meta" Grid.Column="3" Text="{Binding LastRunLabel}" VerticalAlignment="Center"
|
<TextBlock Classes="meta" Grid.Column="3" Text="{Binding LastRunLabel}" VerticalAlignment="Center"
|
||||||
TextTrimming="CharacterEllipsis"
|
TextTrimming="CharacterEllipsis"
|
||||||
ToolTip.Tip="{Binding LastRunLabel}"/>
|
ToolTip.Tip="{Binding LastRunLabel}"/>
|
||||||
<Button Classes="icon-btn" Grid.Column="4" Content="✕"
|
<Button Classes="icon-btn" Grid.Column="4"
|
||||||
ToolTip.Tip="{loc:Tr settings.prime.removeScheduleTip}"
|
ToolTip.Tip="{loc:Tr settings.prime.removeScheduleTip}"
|
||||||
Command="{Binding $parent[ItemsControl].((vm:SettingsModalViewModel)DataContext).Prime.RemoveScheduleCommand}"
|
Command="{Binding $parent[ItemsControl].((vm:SettingsModalViewModel)DataContext).Prime.RemoveScheduleCommand}"
|
||||||
CommandParameter="{Binding}"/>
|
CommandParameter="{Binding}">
|
||||||
|
<PathIcon Width="12" Height="12" Data="{Binding Source='mdi:Close', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<TextBlock Classes="field-label" Text="{loc:Tr settings.prime.actionLabel}"/>
|
<TextBlock Classes="field-label" Text="{loc:Tr settings.prime.actionLabel}"/>
|
||||||
<StackPanel Orientation="Horizontal" Spacing="16">
|
<StackPanel Orientation="Horizontal" Spacing="16">
|
||||||
|
|||||||
@@ -25,10 +25,12 @@
|
|||||||
<StackPanel Orientation="Horizontal" Spacing="6">
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
||||||
<Ellipse Classes="spinner" Width="12" Height="12" VerticalAlignment="Center"
|
<Ellipse Classes="spinner" Width="12" Height="12" VerticalAlignment="Center"
|
||||||
IsVisible="{Binding IsRefreshing}"/>
|
IsVisible="{Binding IsRefreshing}"/>
|
||||||
<Button Classes="icon-btn" Content="⟳" FontSize="{DynamicResource FontSizeBody}"
|
<Button Classes="icon-btn"
|
||||||
Command="{Binding RefreshCommand}"
|
Command="{Binding RefreshCommand}"
|
||||||
IsEnabled="{Binding !IsRefreshing}"
|
IsEnabled="{Binding !IsRefreshing}"
|
||||||
ToolTip.Tip="{loc:Tr modals.usageMonitor.refreshHint}"/>
|
ToolTip.Tip="{loc:Tr modals.usageMonitor.refreshHint}">
|
||||||
|
<PathIcon Width="14" Height="14" Data="{Binding Source='mdi:Refresh', Converter={StaticResource IconKey}}"/>
|
||||||
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ctl:ModalShell.HeaderActions>
|
</ctl:ModalShell.HeaderActions>
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
|
|||||||
Reference in New Issue
Block a user