add support for action keyword when using Ctrl + Backspace

This commit is contained in:
Jeremy 2022-01-20 20:04:48 +11:00
parent ba205ad18f
commit 214fec8687
2 changed files with 15 additions and 7 deletions

View file

@ -506,12 +506,16 @@ namespace Flow.Launcher
if (specialKeyState.CtrlPressed)
{
if (_viewModel.SelectedIsFromQueryResults()
&& QueryTextBox.CaretIndex == QueryTextBox.Text.Length
&& FilesFolders.IsLocationPathString(QueryTextBox.Text))
&& QueryTextBox.CaretIndex == QueryTextBox.Text.Length)
{
_viewModel.BackspaceCommand.Execute(null);
e.Handled = true;
var queryWithoutActionKeyword =
QueryBuilder.Build(QueryTextBox.Text.Trim(), PluginManager.NonGlobalPlugins).Search;
if (FilesFolders.IsLocationPathString(queryWithoutActionKeyword))
{
_viewModel.BackspaceCommand.Execute(null);
e.Handled = true;
}
}
}
break;

View file

@ -254,10 +254,14 @@ namespace Flow.Launcher.ViewModel
BackspaceCommand = new RelayCommand(index =>
{
var path = QueryText;
var query = QueryBuilder.Build(QueryText.Trim(), PluginManager.NonGlobalPlugins);
// GetPreviousExistingDirectory does not require trailing '\', otherwise will return empty string
ChangeQueryText(FilesFolders.GetPreviousExistingDirectory(FilesFolders.IsLocationPathString, path.TrimEnd('\\')));
var path = FilesFolders.GetPreviousExistingDirectory((_) => true, query.Search.TrimEnd('\\'));
var actionKeyword = string.IsNullOrEmpty(query.ActionKeyword) ? string.Empty : $"{query.ActionKeyword} ";
ChangeQueryText($"{actionKeyword}{path}");
});
LoadContextMenuCommand = new RelayCommand(_ =>