Browse Source

Added browse current directory command

CPKreuz 1 year ago
parent
commit
554a36d4b7

+ 2 - 0
src/PixiEditor.AvaloniaUI/Data/Localization/Languages/en.json

@@ -592,4 +592,6 @@
   "NAVIGATOR_DOCKABLE_TITLE": "Navigator",
   "NAVIGATOR_DOCKABLE_TITLE": "Navigator",
   "SWATCHES_DOCKABLE_TITLE": "Swatches",
   "SWATCHES_DOCKABLE_TITLE": "Swatches",
     "PALETTE_DOCKABLE_TITLE": "Palette",
     "PALETTE_DOCKABLE_TITLE": "Palette",
+  
+  "BROWSE_DIRECTORY": "Browse Directory"
 }
 }

+ 1 - 0
src/PixiEditor.AvaloniaUI/ViewModels/SubViewModels/SearchViewModel.cs

@@ -37,6 +37,7 @@ internal class SearchViewModel : SubViewModel<ViewModelMain>, ISearchHandler
     public bool CanToggleSearchWindow() => !ViewModelMain.Current?.DocumentManagerSubViewModel.ActiveDocument?.Busy ?? true;
     public bool CanToggleSearchWindow() => !ViewModelMain.Current?.DocumentManagerSubViewModel.ActiveDocument?.Busy ?? true;
 
 
     [Command.Basic("PixiEditor.Search.Toggle", "", "COMMAND_SEARCH", "OPEN_COMMAND_SEARCH", Key = Key.K, Modifiers = KeyModifiers.Control, CanExecute = "PixiEditor.Search.CanOpenSearchWindow")]
     [Command.Basic("PixiEditor.Search.Toggle", "", "COMMAND_SEARCH", "OPEN_COMMAND_SEARCH", Key = Key.K, Modifiers = KeyModifiers.Control, CanExecute = "PixiEditor.Search.CanOpenSearchWindow")]
+    [Command.Basic("PixiEditor.Search.BrowseDirectory", "./", "BROWSE_DIRECTORY", "BROWSE_DIRECTORY", Key = Key.F, Modifiers = KeyModifiers.Control, CanExecute = "PixiEditor.Search.CanOpenSearchWindow")]
     public void ToggleSearchWindow(string searchTerm)
     public void ToggleSearchWindow(string searchTerm)
     {
     {
         SelectAll = true;
         SelectAll = true;

+ 2 - 1
src/PixiEditor.AvaloniaUI/Views/Main/CommandSearch/CommandSearchControl.axaml

@@ -42,7 +42,8 @@
                 Background="{DynamicResource ThemeBackgroundBrush}">
                 Background="{DynamicResource ThemeBackgroundBrush}">
             <Grid>
             <Grid>
                 <TextBlock Text="{Binding Warnings, ElementName=uc}" TextAlignment="Center" Foreground="Gray"
                 <TextBlock Text="{Binding Warnings, ElementName=uc}" TextAlignment="Center" Foreground="Gray"
-                           Margin="0,5,0,0"
+                           TextWrapping="Wrap"
+                           Margin="5,5,5,0"
                            IsVisible="{Binding HasWarnings, ElementName=uc}" />
                            IsVisible="{Binding HasWarnings, ElementName=uc}" />
                 <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
                 <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
                     <ItemsControl ItemsSource="{Binding Results, ElementName=uc}" x:Name="itemscontrol">
                     <ItemsControl ItemsSource="{Binding Results, ElementName=uc}" x:Name="itemscontrol">

+ 6 - 0
src/PixiEditor.AvaloniaUI/Views/Main/CommandSearch/CommandSearchControlHelper.cs

@@ -157,6 +157,12 @@ internal static class CommandSearchControlHelper
         var files = Directory.EnumerateFiles(directory)
         var files = Directory.EnumerateFiles(directory)
             .Where(x => SupportedFilesHelper.IsExtensionSupported(Path.GetExtension(x)));
             .Where(x => SupportedFilesHelper.IsExtensionSupported(Path.GetExtension(x)));
 
 
+        if (!files.Any())
+        {
+            warnings.Add($"Directory '{Path.GetFullPath(filePath).TrimEnd(Path.DirectorySeparatorChar)}' does not have any files.");
+            return Enumerable.Empty<SearchResult>();
+        }
+
         if (name is not (null or ""))
         if (name is not (null or ""))
         {
         {
             files = files.Where(x => x.Contains(name, StringComparison.OrdinalIgnoreCase));
             files = files.Where(x => x.Contains(name, StringComparison.OrdinalIgnoreCase));