Catalog/imagecatalog/AvaloniaViews/AiTabView.axaml

131 lines
8.5 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:avaloniaDataGrid="clr-namespace:Avalonia.Controls;assembly=Avalonia.Controls.DataGrid"
xmlns:iconPacks="https://github.com/MahApps/IconPacks.Avalonia"
x:Class="ImageCatalog_2.AvaloniaViews.AiTabView"
x:CompileBindings="False">
<TabControl Margin="4">
<TabItem Header="Esecuzione">
<Grid RowDefinitions="Auto,*">
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto">
<StackPanel Margin="4" Spacing="8">
<TextBlock Text="AI / OCR" FontWeight="Bold" />
<StackPanel Orientation="Horizontal" Spacing="12">
<CheckBox Content="Usa GPU"
IsChecked="{Binding UseNumberAiGpu, Mode=TwoWay}"
IsEnabled="{Binding NumberAiGpuOptionEnabled}" />
<CheckBox Content="Includi thumbnail" IsChecked="{Binding IncludeNumberAiThumbnails, Mode=TwoWay}" />
</StackPanel>
<Grid ColumnDefinitions="Auto,Auto,*" ColumnSpacing="8">
<TextBlock Grid.Column="0" Text="Carico OCR:" VerticalAlignment="Center" />
<ComboBox Grid.Column="1"
Width="84"
ItemsSource="{Binding NumberAiWorkloadOptions}"
SelectedItem="{Binding NumberAiWorkloadLevel, Mode=TwoWay}" />
<TextBlock Grid.Column="2"
Text="{Binding NumberAiStatsSummary}"
VerticalAlignment="Center"
TextWrapping="Wrap"
FontWeight="SemiBold" />
</Grid>
<Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Grid.Column="0" Text="Sorgente:" VerticalAlignment="Center" />
<TextBox Grid.Column="1"
Text="{Binding DestinationPath, Mode=OneWay}"
IsReadOnly="True"
VerticalAlignment="Center" />
<Button Grid.Column="2" Width="104" Command="{Binding SelectDestinationFolderCommand}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FolderOpenOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Grid.Column="3" Width="72" Click="OpenAiSourceFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Spacing="8">
<Button Command="{Binding StartAiCommand}" Width="132">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="PlayCircle" Width="16" Height="16" Foreground="#2E7D32" />
<TextBlock Text="Avvia AI" />
</StackPanel>
</Button>
<Button Command="{Binding AsyncCancelOperationCommand}" Width="132">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Cancel" Width="16" Height="16" Foreground="#C62828" />
<TextBlock Text="Annulla" />
</StackPanel>
</Button>
</StackPanel>
<TextBlock Text="Output CSV" FontWeight="Bold" />
<Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Text="Percorso CSV:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
<TextBox Text="{Binding CsvOutputPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" />
<Button Width="104" Command="{Binding SelectCsvOutputCommand}" Grid.Column="2">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FileOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Width="72" Grid.Column="3" Click="OpenCsvOutputFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid>
<TextBlock Text="Anteprima risultati" FontWeight="Bold" />
<ProgressBar Minimum="0" Maximum="100" Value="{Binding AiProgress}" Height="16" Margin="0,0,0,4" />
</StackPanel>
</ScrollViewer>
<avaloniaDataGrid:DataGrid Grid.Row="1"
ItemsSource="{Binding PreviewResults}"
IsReadOnly="True"
AutoGenerateColumns="False"
Margin="4,4,4,4"
CanUserResizeColumns="True"
VerticalAlignment="Stretch">
<avaloniaDataGrid:DataGrid.Columns>
<avaloniaDataGrid:DataGridTextColumn Header="Path" Binding="{Binding Path}" Width="*" />
<avaloniaDataGrid:DataGridTextColumn Header="Text" Binding="{Binding Text}" Width="2*" />
</avaloniaDataGrid:DataGrid.Columns>
</avaloniaDataGrid:DataGrid>
</Grid>
</TabItem>
<TabItem Header="Impostazioni">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="8" Spacing="8">
<TextBlock Text="Modelli" FontWeight="Bold" />
<Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Text="Cartella modelli:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
<TextBox Text="{Binding ModelsFolderPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" />
<Button Width="104" Command="{Binding SelectModelsFolderCommand}" Grid.Column="2">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FolderOpenOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Width="72" Grid.Column="3" Click="OpenModelsFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid>
</StackPanel>
</ScrollViewer>
</TabItem>
</TabControl>
</UserControl>