Add Git overlay, operation tools, and virtualized preview so large folders stay responsive.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
86
src/Explorer.App/ReorganizeWindow.xaml
Normal file
86
src/Explorer.App/ReorganizeWindow.xaml
Normal file
@@ -0,0 +1,86 @@
|
||||
<Window x:Class="Explorer.App.ReorganizeWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Organize folder"
|
||||
Icon="pack://application:,,,/Assets/explorer-workbench.ico"
|
||||
Height="720" 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="340"/>
|
||||
<ColumnDefinition Width="12"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel>
|
||||
<TextBlock TextWrapping="Wrap" Foreground="{DynamicResource FgMuted}" FontSize="12" Margin="0,0,0,12"
|
||||
Text="Classification suggests moves. Unknown, system, backup, and build folders stay put. Nothing is moved until you Queue."/>
|
||||
<TextBlock Text="Folder to organize" Foreground="{DynamicResource FgMuted}" Margin="0,0,0,4"/>
|
||||
<DockPanel Margin="0,0,0,12">
|
||||
<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="Pictures" 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="OnBrowsePictures" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding PicturesPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<TextBlock Text="Videos" 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="OnBrowseVideos" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding VideosPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<TextBlock Text="Audio" 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="OnBrowseAudio" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding AudioPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<TextBlock Text="Documents" 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="OnBrowseDocuments" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding DocumentsPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<TextBlock Text="Installers / Software" 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="OnBrowseInstallers" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding InstallersPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<TextBlock Text="Archives" 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="OnBrowseArchives" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding ArchivesPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<TextBlock Text="Development" 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="OnBrowseDevelopment" Margin="8,0,0,0"/>
|
||||
<TextBox Text="{Binding DevelopmentPath, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</DockPanel>
|
||||
<Button Content="Save destinations" Height="28" Command="{Binding SaveDestinationsCommand}"/>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
<ListView Grid.Column="2" ItemsSource="{Binding Rows}"
|
||||
Background="{DynamicResource Panel}" Foreground="{DynamicResource Fg}">
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridViewColumn Header="Name" Width="160" DisplayMemberBinding="{Binding Name}"/>
|
||||
<GridViewColumn Header="Category" Width="110" DisplayMemberBinding="{Binding Category}"/>
|
||||
<GridViewColumn Header="Action" Width="70" DisplayMemberBinding="{Binding Action}"/>
|
||||
<GridViewColumn Header="Destination" Width="200" DisplayMemberBinding="{Binding Destination}"/>
|
||||
<GridViewColumn Header="Detail" Width="180" DisplayMemberBinding="{Binding Detail}"/>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
</Window>
|
||||
Reference in New Issue
Block a user