|
|
@ -9,10 +9,11 @@ |
|
|
|
xmlns:system="clr-namespace:System;assembly=System.Runtime" |
|
|
|
xmlns:system="clr-namespace:System;assembly=System.Runtime" |
|
|
|
xmlns:checkpointManager="clr-namespace:StabilityMatrix.Avalonia.ViewModels.CheckpointManager" |
|
|
|
xmlns:checkpointManager="clr-namespace:StabilityMatrix.Avalonia.ViewModels.CheckpointManager" |
|
|
|
xmlns:lang="clr-namespace:StabilityMatrix.Avalonia.Languages" |
|
|
|
xmlns:lang="clr-namespace:StabilityMatrix.Avalonia.Languages" |
|
|
|
|
|
|
|
xmlns:avalonia="https://github.com/projektanker/icons.avalonia" |
|
|
|
d:DataContext="{x:Static mocks:DesignData.CheckpointsPageViewModel}" |
|
|
|
d:DataContext="{x:Static mocks:DesignData.CheckpointsPageViewModel}" |
|
|
|
x:CompileBindings="True" |
|
|
|
x:CompileBindings="True" |
|
|
|
x:DataType="vm:CheckpointsPageViewModel" |
|
|
|
x:DataType="vm:CheckpointsPageViewModel" |
|
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" |
|
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="650" |
|
|
|
x:Class="StabilityMatrix.Avalonia.Views.CheckpointsPage"> |
|
|
|
x:Class="StabilityMatrix.Avalonia.Views.CheckpointsPage"> |
|
|
|
|
|
|
|
|
|
|
|
<controls:UserControlBase.Resources> |
|
|
|
<controls:UserControlBase.Resources> |
|
|
@ -66,12 +67,17 @@ |
|
|
|
<ui:MenuFlyoutItem Command="{Binding OpenOnCivitAiCommand}" |
|
|
|
<ui:MenuFlyoutItem Command="{Binding OpenOnCivitAiCommand}" |
|
|
|
Text="{x:Static lang:Resources.Action_OpenOnCivitAi}" IconSource="Link" |
|
|
|
Text="{x:Static lang:Resources.Action_OpenOnCivitAi}" IconSource="Link" |
|
|
|
IsVisible="{Binding IsConnectedModel}" /> |
|
|
|
IsVisible="{Binding IsConnectedModel}" /> |
|
|
|
|
|
|
|
<ui:MenuFlyoutItem Command="{Binding CopyTriggerWordsCommand}" |
|
|
|
|
|
|
|
IsVisible="{Binding CanShowTriggerWords}" |
|
|
|
|
|
|
|
Text="{x:Static lang:Resources.Action_CopyTriggerWords}" |
|
|
|
|
|
|
|
IconSource="Copy" /> |
|
|
|
</ui:FAMenuFlyout> |
|
|
|
</ui:FAMenuFlyout> |
|
|
|
</controls:Card.ContextFlyout> |
|
|
|
</controls:Card.ContextFlyout> |
|
|
|
<Grid> |
|
|
|
<Grid> |
|
|
|
<!-- Main contents, hidden when IsLoading is true --> |
|
|
|
<!-- Main contents, hidden when IsLoading is true --> |
|
|
|
<StackPanel MinHeight="70"> |
|
|
|
<StackPanel MinHeight="70"> |
|
|
|
<Grid ColumnDefinitions="*, Auto" RowDefinitions="Auto,*,Auto" IsVisible="{Binding !IsLoading}"> |
|
|
|
<Grid ColumnDefinitions="*, Auto" RowDefinitions="Auto,*,Auto,Auto" |
|
|
|
|
|
|
|
IsVisible="{Binding !IsLoading}"> |
|
|
|
<StackPanel |
|
|
|
<StackPanel |
|
|
|
Grid.ColumnSpan="2" |
|
|
|
Grid.ColumnSpan="2" |
|
|
|
HorizontalAlignment="Left" |
|
|
|
HorizontalAlignment="Left" |
|
|
@ -106,6 +112,17 @@ |
|
|
|
Source="{Binding PreviewImagePath}" |
|
|
|
Source="{Binding PreviewImagePath}" |
|
|
|
Stretch="Uniform" |
|
|
|
Stretch="Uniform" |
|
|
|
IsVisible="{Binding IsConnectedModel}" /> |
|
|
|
IsVisible="{Binding IsConnectedModel}" /> |
|
|
|
|
|
|
|
<TextBlock |
|
|
|
|
|
|
|
FontSize="13" |
|
|
|
|
|
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}" |
|
|
|
|
|
|
|
HorizontalAlignment="Left" |
|
|
|
|
|
|
|
Margin="0,0,0,4" |
|
|
|
|
|
|
|
TextWrapping="WrapWithOverflow" |
|
|
|
|
|
|
|
IsVisible="{Binding CanShowTriggerWords}"> |
|
|
|
|
|
|
|
<Run Text="{x:Static lang:Resources.Label_TriggerWords}" /> |
|
|
|
|
|
|
|
<Run |
|
|
|
|
|
|
|
Text="{Binding ConnectedModel.TrainedWordsString, FallbackValue=''}" /> |
|
|
|
|
|
|
|
</TextBlock> |
|
|
|
</StackPanel> |
|
|
|
</StackPanel> |
|
|
|
</ToolTip.Tip> |
|
|
|
</ToolTip.Tip> |
|
|
|
<TextBlock |
|
|
|
<TextBlock |
|
|
@ -179,7 +196,7 @@ |
|
|
|
Grid.Column="0" |
|
|
|
Grid.Column="0" |
|
|
|
Grid.Row="2" |
|
|
|
Grid.Row="2" |
|
|
|
IsEnabled="True" |
|
|
|
IsEnabled="True" |
|
|
|
Margin="4,4" |
|
|
|
Margin="0,4" |
|
|
|
Text="{Binding FileName}" |
|
|
|
Text="{Binding FileName}" |
|
|
|
TextTrimming="CharacterEllipsis" |
|
|
|
TextTrimming="CharacterEllipsis" |
|
|
|
ToolTip.Tip="{Binding FileName}" |
|
|
|
ToolTip.Tip="{Binding FileName}" |
|
|
@ -196,6 +213,20 @@ |
|
|
|
<UniformGridLayout /> |
|
|
|
<UniformGridLayout /> |
|
|
|
</ItemsRepeater.Layout> |
|
|
|
</ItemsRepeater.Layout> |
|
|
|
</ItemsRepeater> |
|
|
|
</ItemsRepeater> |
|
|
|
|
|
|
|
<TextBlock Grid.Row="3" Grid.Column="0" |
|
|
|
|
|
|
|
Grid.ColumnSpan="2" |
|
|
|
|
|
|
|
FontSize="11" |
|
|
|
|
|
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}" |
|
|
|
|
|
|
|
HorizontalAlignment="Left" |
|
|
|
|
|
|
|
VerticalAlignment="Bottom" |
|
|
|
|
|
|
|
Margin="0,4,0,0" |
|
|
|
|
|
|
|
TextTrimming="CharacterEllipsis" |
|
|
|
|
|
|
|
TextWrapping="NoWrap" |
|
|
|
|
|
|
|
ToolTip.Tip="{Binding ConnectedModel.TrainedWordsString, FallbackValue=''}" |
|
|
|
|
|
|
|
IsVisible="{Binding CanShowTriggerWords}"> |
|
|
|
|
|
|
|
<Run Text="{x:Static lang:Resources.Label_TriggerWords}" /> |
|
|
|
|
|
|
|
<Run Text="{Binding ConnectedModel.TrainedWordsString, FallbackValue=''}" /> |
|
|
|
|
|
|
|
</TextBlock> |
|
|
|
</Grid> |
|
|
|
</Grid> |
|
|
|
</StackPanel> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
|
|
|
@ -241,7 +272,8 @@ |
|
|
|
<ui:MenuFlyoutSeparator /> |
|
|
|
<ui:MenuFlyoutSeparator /> |
|
|
|
<ui:MenuFlyoutSubItem Text="{x:Static lang:Resources.Action_New}" IconSource="Add"> |
|
|
|
<ui:MenuFlyoutSubItem Text="{x:Static lang:Resources.Action_New}" IconSource="Add"> |
|
|
|
<ui:MenuFlyoutSubItem.Items> |
|
|
|
<ui:MenuFlyoutSubItem.Items> |
|
|
|
<ui:MenuFlyoutItem Text="{x:Static lang:Resources.Label_Folder}" IconSource="OpenFolder" |
|
|
|
<ui:MenuFlyoutItem Text="{x:Static lang:Resources.Label_Folder}" |
|
|
|
|
|
|
|
IconSource="OpenFolder" |
|
|
|
Command="{Binding CreateSubFolderCommand}" /> |
|
|
|
Command="{Binding CreateSubFolderCommand}" /> |
|
|
|
</ui:MenuFlyoutSubItem.Items> |
|
|
|
</ui:MenuFlyoutSubItem.Items> |
|
|
|
</ui:MenuFlyoutSubItem> |
|
|
|
</ui:MenuFlyoutSubItem> |
|
|
@ -378,29 +410,8 @@ |
|
|
|
<Grid ColumnDefinitions="Auto,*" RowDefinitions="Auto,*" Margin="4, 0" |
|
|
|
<Grid ColumnDefinitions="Auto,*" RowDefinitions="Auto,*" Margin="4, 0" |
|
|
|
x:Name="ParentGrid"> |
|
|
|
x:Name="ParentGrid"> |
|
|
|
<!-- Top settings bar --> |
|
|
|
<!-- Top settings bar --> |
|
|
|
<StackPanel Grid.Column="0" Grid.Row="0"> |
|
|
|
<StackPanel Orientation="Horizontal"> |
|
|
|
<ToggleSwitch |
|
|
|
<TextBox Margin="16, 16, 8, 16" |
|
|
|
OffContent="{x:Static lang:Resources.Label_ImportAsConnected}" |
|
|
|
|
|
|
|
OnContent="{x:Static lang:Resources.Label_ImportAsConnected}" |
|
|
|
|
|
|
|
IsChecked="{Binding IsImportAsConnected}" |
|
|
|
|
|
|
|
Margin="24,4,24,-4" |
|
|
|
|
|
|
|
ToolTip.Tip="{x:Static lang:Resources.Label_ImportAsConnectedExplanation}" /> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<ToggleSwitch |
|
|
|
|
|
|
|
OffContent="{x:Static lang:Resources.Label_ShowModelImages}" |
|
|
|
|
|
|
|
OnContent="{x:Static lang:Resources.Label_ShowModelImages}" |
|
|
|
|
|
|
|
IsChecked="{Binding ShowConnectedModelImages}" |
|
|
|
|
|
|
|
Margin="24,-4,24,4" /> |
|
|
|
|
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<StackPanel |
|
|
|
|
|
|
|
Grid.Column="1" |
|
|
|
|
|
|
|
Grid.Row="0" |
|
|
|
|
|
|
|
Spacing="8" |
|
|
|
|
|
|
|
HorizontalAlignment="Right" |
|
|
|
|
|
|
|
Margin="16,0" |
|
|
|
|
|
|
|
Orientation="Horizontal"> |
|
|
|
|
|
|
|
<TextBox Margin="8, 16" |
|
|
|
|
|
|
|
Watermark="{x:Static lang:Resources.Action_Search}" |
|
|
|
Watermark="{x:Static lang:Resources.Action_Search}" |
|
|
|
Height="16" |
|
|
|
Height="16" |
|
|
|
MinWidth="220" |
|
|
|
MinWidth="220" |
|
|
@ -421,22 +432,9 @@ |
|
|
|
</Grid> |
|
|
|
</Grid> |
|
|
|
</TextBox.InnerRightContent> |
|
|
|
</TextBox.InnerRightContent> |
|
|
|
</TextBox> |
|
|
|
</TextBox> |
|
|
|
<controls:ProgressRing |
|
|
|
|
|
|
|
Width="16" |
|
|
|
|
|
|
|
Height="16" |
|
|
|
|
|
|
|
BorderThickness="4" |
|
|
|
|
|
|
|
IsIndeterminate="True" |
|
|
|
|
|
|
|
IsVisible="{Binding IsIndexing}"/> |
|
|
|
|
|
|
|
<TextBlock Text="{x:Static lang:Resources.Label_Indexing}" FontSize="11" |
|
|
|
|
|
|
|
VerticalAlignment="Center" |
|
|
|
|
|
|
|
IsVisible="{Binding IsIndexing}"/> |
|
|
|
|
|
|
|
<Button |
|
|
|
|
|
|
|
Command="{Binding OpenModelsFolderCommand}"> |
|
|
|
|
|
|
|
<TextBlock Text="{x:Static lang:Resources.Label_ModelsFolder}"/> |
|
|
|
|
|
|
|
</Button> |
|
|
|
|
|
|
|
<DropDownButton |
|
|
|
<DropDownButton |
|
|
|
Content="{x:Static lang:Resources.Label_Categories}" |
|
|
|
Content="{x:Static lang:Resources.Label_Categories}" |
|
|
|
Margin="8" |
|
|
|
Margin="8,0" |
|
|
|
VerticalAlignment="Center" |
|
|
|
VerticalAlignment="Center" |
|
|
|
HorizontalAlignment="Right"> |
|
|
|
HorizontalAlignment="Right"> |
|
|
|
<DropDownButton.Flyout> |
|
|
|
<DropDownButton.Flyout> |
|
|
@ -453,6 +451,62 @@ |
|
|
|
</DropDownButton.Flyout> |
|
|
|
</DropDownButton.Flyout> |
|
|
|
</DropDownButton> |
|
|
|
</DropDownButton> |
|
|
|
</StackPanel> |
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
<ui:CommandBar |
|
|
|
|
|
|
|
Grid.Row="0" |
|
|
|
|
|
|
|
Grid.Column="1" |
|
|
|
|
|
|
|
x:Name="CommandBar" |
|
|
|
|
|
|
|
Margin="8,0,0,0" |
|
|
|
|
|
|
|
VerticalAlignment="Center" |
|
|
|
|
|
|
|
VerticalContentAlignment="Center" |
|
|
|
|
|
|
|
HorizontalAlignment="Right" |
|
|
|
|
|
|
|
HorizontalContentAlignment="Right" |
|
|
|
|
|
|
|
DefaultLabelPosition="Right"> |
|
|
|
|
|
|
|
<ui:CommandBar.PrimaryCommands> |
|
|
|
|
|
|
|
<ui:CommandBarButton |
|
|
|
|
|
|
|
IconSource="OpenFolder" |
|
|
|
|
|
|
|
VerticalAlignment="Center" |
|
|
|
|
|
|
|
Label="{x:Static lang:Resources.Label_ModelsFolder}" |
|
|
|
|
|
|
|
Command="{Binding OpenModelsFolderCommand}" /> |
|
|
|
|
|
|
|
<ui:CommandBarButton |
|
|
|
|
|
|
|
IconSource="Refresh" |
|
|
|
|
|
|
|
VerticalAlignment="Center" |
|
|
|
|
|
|
|
Command="{Binding OnLoaded}" |
|
|
|
|
|
|
|
Label="{x:Static lang:Resources.Action_Refresh}" /> |
|
|
|
|
|
|
|
<ui:CommandBarToggleButton |
|
|
|
|
|
|
|
IconSource="Image" |
|
|
|
|
|
|
|
Label="{x:Static lang:Resources.Label_ShowModelImages}" |
|
|
|
|
|
|
|
IsChecked="{Binding ShowConnectedModelImages, Mode=TwoWay}"> |
|
|
|
|
|
|
|
</ui:CommandBarToggleButton> |
|
|
|
|
|
|
|
</ui:CommandBar.PrimaryCommands> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<ui:CommandBar.SecondaryCommands> |
|
|
|
|
|
|
|
<ui:CommandBarToggleButton |
|
|
|
|
|
|
|
IconSource="Cloud" |
|
|
|
|
|
|
|
Label="{x:Static lang:Resources.Label_ImportAsConnected}" |
|
|
|
|
|
|
|
IsChecked="{Binding IsImportAsConnected, Mode=TwoWay}"> |
|
|
|
|
|
|
|
</ui:CommandBarToggleButton> |
|
|
|
|
|
|
|
</ui:CommandBar.SecondaryCommands> |
|
|
|
|
|
|
|
</ui:CommandBar> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<StackPanel |
|
|
|
|
|
|
|
IsVisible="False" |
|
|
|
|
|
|
|
Grid.Column="1" |
|
|
|
|
|
|
|
Grid.Row="0" |
|
|
|
|
|
|
|
Spacing="8" |
|
|
|
|
|
|
|
HorizontalAlignment="Right" |
|
|
|
|
|
|
|
Margin="16,0" |
|
|
|
|
|
|
|
Orientation="Horizontal"> |
|
|
|
|
|
|
|
<controls:ProgressRing |
|
|
|
|
|
|
|
Width="16" |
|
|
|
|
|
|
|
Height="16" |
|
|
|
|
|
|
|
BorderThickness="4" |
|
|
|
|
|
|
|
IsIndeterminate="True" |
|
|
|
|
|
|
|
IsVisible="{Binding IsIndexing}" /> |
|
|
|
|
|
|
|
<TextBlock Text="{x:Static lang:Resources.Label_Indexing}" FontSize="11" |
|
|
|
|
|
|
|
VerticalAlignment="Center" |
|
|
|
|
|
|
|
IsVisible="{Binding IsIndexing}" /> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
|
|
|
|
<!-- Main view with model cards --> |
|
|
|
<!-- Main view with model cards --> |
|
|
|
<ScrollViewer |
|
|
|
<ScrollViewer |
|
|
|