Improve folder editor experience

This commit is contained in:
Filip Horvat 2022-12-19 21:07:07 +01:00
parent 9c369c4ead
commit 56d6433db0
25 changed files with 109 additions and 14 deletions

View file

@ -40,7 +40,10 @@ namespace Flow.Launcher.Plugin.Explorer
if (selectedResult.ContextData is SearchResult record)
{
if (record.Type == ResultType.File && !string.IsNullOrEmpty(Settings.EditorPath))
contextMenus.Add(CreateOpenWithEditorResult(record));
contextMenus.Add(CreateOpenWithEditorResult(record, Settings.EditorPath));
if (record.Type == ResultType.Folder && !string.IsNullOrEmpty(Settings.FolderEditorPath))
contextMenus.Add(CreateOpenWithEditorResult(record, Settings.FolderEditorPath));
if (record.Type == ResultType.Folder && record.WindowsIndexed)
{
@ -309,10 +312,8 @@ namespace Flow.Launcher.Plugin.Explorer
private Result CreateOpenWithEditorResult(SearchResult record)
private Result CreateOpenWithEditorResult(SearchResult record, string editorPath)
{
string editorPath = Settings.EditorPath;
var name = $"{Context.API.GetTranslation("plugin_explorer_openwitheditor")} {Path.GetFileNameWithoutExtension(editorPath)}";
return new Result

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Filredigeringssti</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Mapperedigeringssti</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Datei-Editor-Pfad</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Ordner-Editor-Pfad</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -46,6 +46,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">File Editor Path</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Folder Editor Path</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Ruta del editor</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Folder Editor Path</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Índice de Windows</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Enumeración directa</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Ruta del editor</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Ruta del editor de carpetas</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Motor de búsqueda de contenido</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Motor de búsqueda recursiva de directorio</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Chemin de l'éditeur de fichiers</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Chemin de l'éditeur de dossier</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Tutto</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Percorso dell'editor di file</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Percorso dell'editor delle cartelle</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">ファイル エディターのパス</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">フォルダー エディターのパス</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">파일 편집기 경로</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">폴더 편집기 경로</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Filredigeringsbane</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Mapperedigeringsbane</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Bestandseditor pad</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Pad naar mapeditor</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Ścieżka edytora plików</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Ścieżka edytora folderów</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">File Editor Path</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Folder Editor Path</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Índice do Windows</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Enumeração direta</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">File Editor Path</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Folder Editor Path</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Mecanismo de pesquisa para conteúdo</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Mecanismo de pesquisa recursiva de diretórios</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Путь к редактору файлов</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Путь к редактору папки</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Index Windowsu</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Zoznam priečinkov</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Cesta editora súborov</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Cesta editora priečinkov</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Vyhľadávač obsahu</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Priečinkový rekurzívny vyhľadávač</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">File Editor Path</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Folder Editor Path</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Düzenleyici Konumu</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Folder Editor Path</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">Шлях редактора файлів</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">Шлях редактора папок</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows 索引</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">直接枚举</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">文件编辑器路径</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">文件夹编辑器路径</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">文件内容搜索引擎</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">目录递归搜索引擎</system:String>

View file

@ -45,6 +45,8 @@
<system:String x:Key="plugin_explorer_engine_everything">Everything</system:String>
<system:String x:Key="plugin_explorer_engine_windows_index">Windows Index</system:String>
<system:String x:Key="plugin_explorer_path_enumeration_engine_none">Direct Enumeration</system:String>
<system:String x:Key="plugin_explorer_file_editor_path">文件編輯器路徑</system:String>
<system:String x:Key="plugin_explorer_folder_editor_path">文件夾編輯器路徑</system:String>
<system:String x:Key="plugin_explorer_Content_Search_Engine">Content Search Engine</system:String>
<system:String x:Key="plugin_explorer_Directory_Recursive_Search_Engine">Directory Recursive Search Engine</system:String>

View file

@ -1,4 +1,4 @@
using Flow.Launcher.Plugin.Everything.Everything;
using Flow.Launcher.Plugin.Everything.Everything;
using Flow.Launcher.Plugin.Explorer.Search;
using Flow.Launcher.Plugin.Explorer.Search.Everything;
using Flow.Launcher.Plugin.Explorer.Search.QuickAccessLinks;
@ -23,6 +23,8 @@ namespace Flow.Launcher.Plugin.Explorer
public string EditorPath { get; set; } = "";
public string FolderEditorPath { get; set; } = "";
public string ShellPath { get; set; } = "cmd";

View file

@ -315,15 +315,26 @@ namespace Flow.Launcher.Plugin.Explorer.ViewModels
Process.Start(psi);
}
private ICommand? _openEditorPathCommand;
private ICommand? _openFileEditorPathCommand;
public ICommand OpenEditorPath => _openEditorPathCommand ??= new RelayCommand(_ =>
public ICommand OpenFileEditorPath => _openFileEditorPathCommand ??= new RelayCommand(_ =>
{
var path = PromptUserSelectPath(ResultType.File, Settings.EditorPath != null ? Path.GetDirectoryName(Settings.EditorPath) : null);
if (path is null)
return;
EditorPath = path;
FileEditorPath = path;
});
private ICommand? _openFolderEditorPathCommand;
public ICommand OpenFolderEditorPath => _openFolderEditorPathCommand ??= new RelayCommand(_ =>
{
var path = PromptUserSelectPath(ResultType.File, Settings.FolderEditorPath != null ? Path.GetDirectoryName(Settings.FolderEditorPath) : null);
if (path is null)
return;
FolderEditorPath = path;
});
private ICommand? _openShellPathCommand;
@ -338,7 +349,7 @@ namespace Flow.Launcher.Plugin.Explorer.ViewModels
});
public string EditorPath
public string FileEditorPath
{
get => Settings.EditorPath;
set
@ -348,6 +359,16 @@ namespace Flow.Launcher.Plugin.Explorer.ViewModels
}
}
public string FolderEditorPath
{
get => Settings.FolderEditorPath;
set
{
Settings.FolderEditorPath = value;
OnPropertyChanged();
}
}
public string ShellPath
{
get => Settings.ShellPath;

View file

@ -175,7 +175,8 @@
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
@ -183,7 +184,7 @@
Margin="0,6,16,6"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{DynamicResource plugin_explorer_editor_path}"
Text="{DynamicResource plugin_explorer_file_editor_path}"
TextBlock.Foreground="{DynamicResource Color05B}" />
<StackPanel
Grid.Row="0"
@ -194,27 +195,55 @@
Width="250"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding EditorPath}"
Text="{Binding FileEditorPath}"
TextWrapping="NoWrap" />
<Button
MinWidth="50"
Margin="5,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Command="{Binding OpenEditorPath}"
Command="{Binding OpenFileEditorPath}"
Content="..." />
</StackPanel>
<TextBlock
Grid.Row="1"
Grid.Column="0"
Margin="0,6,16,6"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{DynamicResource plugin_explorer_folder_editor_path}"
TextBlock.Foreground="{DynamicResource Color05B}" />
<StackPanel
Grid.Row="1"
Grid.Column="1"
Margin="0,6,6,6"
Orientation="Horizontal">
<TextBox
Width="250"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding FolderEditorPath}"
TextWrapping="NoWrap" />
<Button
MinWidth="50"
Margin="5,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Command="{Binding OpenFolderEditorPath}"
Content="..." />
</StackPanel>
<TextBlock
Grid.Row="2"
Grid.Column="0"
Margin="0,16,6,6"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{DynamicResource plugin_explorer_shell_path}"
TextBlock.Foreground="{DynamicResource Color05B}" />
<StackPanel
Grid.Row="1"
Grid.Row="2"
Grid.Column="1"
Orientation="Horizontal">
<TextBox