109 lines
6.8 KiB
XML
109 lines
6.8 KiB
XML
<Window x:Class="Explorer.App.OperationProfilesWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
Title="Operation profiles"
|
|
Icon="pack://application:,,,/Assets/explorer-workbench.ico"
|
|
Height="740" Width="980"
|
|
MinHeight="560" MinWidth="780"
|
|
WindowStartupLocation="CenterOwner"
|
|
Background="{DynamicResource Bg}" Foreground="{DynamicResource Fg}">
|
|
<DockPanel Margin="16">
|
|
<DockPanel DockPanel.Dock="Bottom" Margin="0,12,0,0">
|
|
<Button DockPanel.Dock="Right" Content="Close" MinWidth="88" Height="32" IsCancel="True" Margin="8,0,0,0"/>
|
|
<Button DockPanel.Dock="Right" Content="Queue" MinWidth="88" Height="32" IsDefault="True"
|
|
Command="{Binding QueueCommand}" IsEnabled="{Binding CanQueue}" Margin="8,0,0,0"/>
|
|
<Button DockPanel.Dock="Right" Content="Preview" MinWidth="88" Height="32"
|
|
Command="{Binding AnalyzeCommand}" Margin="8,0,0,0"/>
|
|
<TextBlock Text="{Binding Status}" VerticalAlignment="Center" Foreground="{DynamicResource FgMuted}" TextWrapping="Wrap"/>
|
|
</DockPanel>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="220"/>
|
|
<ColumnDefinition Width="12"/>
|
|
<ColumnDefinition Width="320"/>
|
|
<ColumnDefinition Width="12"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<DockPanel>
|
|
<TextBlock DockPanel.Dock="Bottom" TextWrapping="Wrap" FontSize="12" Margin="0,8,0,0"
|
|
Foreground="{DynamicResource FgMuted}"
|
|
Text="Drop files onto a profile to preview with those items."/>
|
|
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" Margin="0,8,0,0">
|
|
<Button Content="New" MinWidth="56" Height="28" Command="{Binding NewProfileCommand}" Margin="0,0,8,0"/>
|
|
<Button Content="Duplicate" MinWidth="72" Height="28" Command="{Binding DuplicateCommand}" Margin="0,0,8,0"/>
|
|
<Button Content="Delete" MinWidth="56" Height="28" Command="{Binding DeleteCommand}"/>
|
|
</StackPanel>
|
|
<ListBox ItemsSource="{Binding Profiles}" SelectedItem="{Binding Selected}"
|
|
DisplayMemberPath="Name"
|
|
AllowDrop="True"
|
|
DragOver="OnProfileDragOver"
|
|
Drop="OnProfileDrop"
|
|
Background="{DynamicResource Panel}" Foreground="{DynamicResource Fg}"/>
|
|
</DockPanel>
|
|
<ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Auto">
|
|
<StackPanel>
|
|
<TextBlock Text="Name" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"/>
|
|
<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" Margin="0,0,0,8"/>
|
|
<TextBlock Text="Source" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"/>
|
|
<DockPanel Margin="0,0,0,8">
|
|
<Button DockPanel.Dock="Right" Content="Browse…" MinWidth="80" Height="28" Click="OnBrowseSource" Margin="8,0,0,0"/>
|
|
<TextBox Text="{Binding SourcePath, UpdateSourceTrigger=PropertyChanged}"/>
|
|
</DockPanel>
|
|
<TextBlock Text="Destination" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"/>
|
|
<DockPanel Margin="0,0,0,8">
|
|
<Button DockPanel.Dock="Right" Content="Browse…" MinWidth="80" Height="28" Click="OnBrowseDest" Margin="8,0,0,0"/>
|
|
<TextBox Text="{Binding DestPath, UpdateSourceTrigger=PropertyChanged}"/>
|
|
</DockPanel>
|
|
<CheckBox Content="Require a clean Git working tree" IsChecked="{Binding RequireGitClean}" Margin="0,0,0,8"/>
|
|
<CheckBox Content="Rename" IsChecked="{Binding DoRename}" Margin="0,0,0,8"/>
|
|
<TextBlock Text="Prefix / suffix" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"
|
|
IsEnabled="{Binding DoRename}"/>
|
|
<Grid Margin="0,0,0,8" IsEnabled="{Binding DoRename}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="8"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox Text="{Binding RenamePrefix, UpdateSourceTrigger=PropertyChanged}"/>
|
|
<TextBox Grid.Column="2" Text="{Binding RenameSuffix, UpdateSourceTrigger=PropertyChanged}"/>
|
|
</Grid>
|
|
<TextBlock Text="Search / replace" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"
|
|
IsEnabled="{Binding DoRename}"/>
|
|
<Grid Margin="0,0,0,8" IsEnabled="{Binding DoRename}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="8"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox Text="{Binding RenameSearch, UpdateSourceTrigger=PropertyChanged}"/>
|
|
<TextBox Grid.Column="2" Text="{Binding RenameReplace, UpdateSourceTrigger=PropertyChanged}"/>
|
|
</Grid>
|
|
<CheckBox Content="Compress" IsChecked="{Binding DoCompress}" Margin="0,0,0,8"/>
|
|
<ComboBox ItemsSource="{Binding Formats}" DisplayMemberPath="Label" SelectedValuePath="Format"
|
|
SelectedValue="{Binding ArchiveFormat}" Margin="0,0,0,8"
|
|
IsEnabled="{Binding CompressOptionsEnabled}"/>
|
|
<CheckBox Content="Copy to destination" IsChecked="{Binding DoCopy}" Margin="0,0,0,8"/>
|
|
<CheckBox Content="Run when the destination volume is connected"
|
|
IsChecked="{Binding AutoRun}" IsEnabled="{Binding AutoRunEnabled}" Margin="0,0,0,8"/>
|
|
<TextBlock TextWrapping="Wrap" Foreground="{DynamicResource FgMuted}" FontSize="12" Margin="0,0,0,12"
|
|
Text="Auto-run is Copy only — not Rename or Compress. Drive letters can change; the volume identity is stored."/>
|
|
<TextBlock Text="Exclude names (one glob per line)" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"/>
|
|
<TextBox Text="{Binding Excludes, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True"
|
|
Height="90" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap"/>
|
|
<Button Content="Save profile" Margin="0,12,0,0" Height="28" Command="{Binding SaveCommand}"/>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
<ListView Grid.Column="4" ItemsSource="{Binding Rows}"
|
|
Background="{DynamicResource Panel}" Foreground="{DynamicResource Fg}">
|
|
<ListView.View>
|
|
<GridView>
|
|
<GridViewColumn Header="Action" Width="90" DisplayMemberBinding="{Binding Action}"/>
|
|
<GridViewColumn Header="Path" Width="240" DisplayMemberBinding="{Binding Path}"/>
|
|
<GridViewColumn Header="Detail" Width="140" DisplayMemberBinding="{Binding Detail}"/>
|
|
</GridView>
|
|
</ListView.View>
|
|
</ListView>
|
|
</Grid>
|
|
</DockPanel>
|
|
</Window>
|