mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
- Convert Garulf's Query Cycle feature
- Add Reset CycleIndex when close window
This commit is contained in:
parent
106760ca66
commit
c950a689d5
4 changed files with 101 additions and 1 deletions
|
|
@ -31,6 +31,8 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
public string SelectPrevPageHotkey { get; set; } = $"PageDown";
|
||||
public string OpenContextMenuHotkey { get; set; } = $"Ctrl+O";
|
||||
public string SettingWindowHotkey { get; set; } = $"Ctrl+I";
|
||||
public string CycleHistoryUpHotkey { get; set; } = $"{KeyConstant.Alt} + Up";
|
||||
public string CycleHistoryDownHotkey { get; set; } = $"{KeyConstant.Alt} + Down";
|
||||
|
||||
public string Language
|
||||
{
|
||||
|
|
@ -340,6 +342,10 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
list.Add(new(SelectNextPageHotkey, "SelectNextPageHotkey", () => SelectNextPageHotkey = ""));
|
||||
if(!string.IsNullOrEmpty(SelectPrevPageHotkey))
|
||||
list.Add(new(SelectPrevPageHotkey, "SelectPrevPageHotkey", () => SelectPrevPageHotkey = ""));
|
||||
if (!string.IsNullOrEmpty(CycleHistoryUpHotkey))
|
||||
list.Add(new(CycleHistoryUpHotkey, "CycleHistoryUpHotkey", () => CycleHistoryUpHotkey = ""));
|
||||
if (!string.IsNullOrEmpty(CycleHistoryDownHotkey))
|
||||
list.Add(new(CycleHistoryDownHotkey, "CycleHistoryDownHotkey", () => CycleHistoryDownHotkey = ""));
|
||||
|
||||
foreach (var customPluginHotkey in CustomPluginHotkeys)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -197,6 +197,14 @@
|
|||
Key="{Binding SelectPrevPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
||||
Command="{Binding SelectPrevPageCommand}"
|
||||
Modifiers="{Binding SelectPrevPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
||||
<KeyBinding
|
||||
Key="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
||||
Command="{Binding ReverseHistoryCommand}"
|
||||
Modifiers="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
||||
<KeyBinding
|
||||
Key="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
||||
Command="{Binding ForwardHistoryCommand}"
|
||||
Modifiers="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
||||
</Window.InputBindings>
|
||||
<Grid>
|
||||
<Border MouseDown="OnMouseDown" Style="{DynamicResource WindowBorderStyle}">
|
||||
|
|
|
|||
|
|
@ -2810,6 +2810,26 @@
|
|||
Type="Inside">
|
||||
<cc:HotkeyDisplay Keys="Ctrl+R" />
|
||||
</cc:Card>
|
||||
<cc:Card
|
||||
Title="Cycle History Up"
|
||||
Icon=""
|
||||
Type="Inside">
|
||||
<flowlauncher:HotkeyControl
|
||||
DefaultHotkey="Alt+Up"
|
||||
Hotkey="{Binding Settings.CycleHistoryUpHotkey}"
|
||||
HotkeySettings="{Binding Settings}"
|
||||
ValidateKeyGesture="False" />
|
||||
</cc:Card>
|
||||
<cc:Card
|
||||
Title="Cycle History Down"
|
||||
Icon=""
|
||||
Type="Inside">
|
||||
<flowlauncher:HotkeyControl
|
||||
DefaultHotkey="Alt+Down"
|
||||
Hotkey="{Binding Settings.CycleHistoryDownHotkey}"
|
||||
HotkeySettings="{Binding Settings}"
|
||||
ValidateKeyGesture="False" />
|
||||
</cc:Card>
|
||||
<cc:Card
|
||||
Title="{DynamicResource ReloadPluginHotkey}"
|
||||
Icon=""
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ namespace Flow.Launcher.ViewModel
|
|||
private readonly FlowLauncherJsonStorage<UserSelectedRecord> _userSelectedRecordStorage;
|
||||
private readonly FlowLauncherJsonStorage<TopMostRecord> _topMostRecordStorage;
|
||||
private readonly History _history;
|
||||
private int lasthistoryindex = 1;
|
||||
private readonly UserSelectedRecord _userSelectedRecord;
|
||||
private readonly TopMostRecord _topMostRecord;
|
||||
|
||||
|
|
@ -83,6 +84,12 @@ namespace Flow.Launcher.ViewModel
|
|||
case nameof(Settings.AutoCompleteHotkey):
|
||||
OnPropertyChanged(nameof(AutoCompleteHotkey));
|
||||
break;
|
||||
case nameof(Settings.CycleHistoryUpHotkey):
|
||||
OnPropertyChanged(nameof(CycleHistoryUpHotkey));
|
||||
break;
|
||||
case nameof(Settings.CycleHistoryDownHotkey):
|
||||
OnPropertyChanged(nameof(CycleHistoryDownHotkey));
|
||||
break;
|
||||
case nameof(Settings.AutoCompleteHotkey2):
|
||||
OnPropertyChanged(nameof(AutoCompleteHotkey2));
|
||||
break;
|
||||
|
|
@ -256,6 +263,49 @@ namespace Flow.Launcher.ViewModel
|
|||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
public void ReverseHistory()
|
||||
{
|
||||
if (_history.Items.Count > 0)
|
||||
{
|
||||
ChangeQueryText(_history.Items[_history.Items.Count - lasthistoryindex].Query.ToString());
|
||||
if (lasthistoryindex < _history.Items.Count)
|
||||
{
|
||||
lasthistoryindex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
public void ForwardHistory()
|
||||
{
|
||||
if (_history.Items.Count > 0)
|
||||
{
|
||||
ChangeQueryText(_history.Items[_history.Items.Count - lasthistoryindex].Query.ToString());
|
||||
if (lasthistoryindex > 1)
|
||||
{
|
||||
lasthistoryindex--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
public void ReverseHistoryOnEmptyQuery()
|
||||
{
|
||||
var results = SelectedResults;
|
||||
if (_history.Items.Count > 0
|
||||
&& _queryText == String.Empty
|
||||
&& !HistorySelected()
|
||||
&& !ContextMenuSelected())
|
||||
{
|
||||
ReverseHistory();
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedResults.SelectPrevResult();
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void LoadContextMenu()
|
||||
{
|
||||
|
|
@ -394,7 +444,20 @@ namespace Flow.Launcher.ViewModel
|
|||
[RelayCommand]
|
||||
private void SelectPrevItem()
|
||||
{
|
||||
SelectedResults.SelectPrevResult();
|
||||
var results = SelectedResults;
|
||||
if (_history.Items.Count > 0
|
||||
&& _queryText == String.Empty
|
||||
&& !HistorySelected()
|
||||
&& !ContextMenuSelected())
|
||||
{
|
||||
lasthistoryindex = 1;
|
||||
ReverseHistory();
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedResults.SelectPrevResult();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
|
|
@ -690,6 +753,8 @@ namespace Flow.Launcher.ViewModel
|
|||
public string SelectPrevPageHotkey => VerifyOrSetDefaultHotkey(Settings.SelectPrevPageHotkey, "");
|
||||
public string OpenContextMenuHotkey => VerifyOrSetDefaultHotkey(Settings.OpenContextMenuHotkey, "Ctrl+O");
|
||||
public string SettingWindowHotkey => VerifyOrSetDefaultHotkey(Settings.SettingWindowHotkey, "Ctrl+I");
|
||||
public string CycleHistoryUpHotkey => VerifyOrSetDefaultHotkey(Settings.CycleHistoryUpHotkey, "Alt+Up");
|
||||
public string CycleHistoryDownHotkey => VerifyOrSetDefaultHotkey(Settings.CycleHistoryDownHotkey, "Alt+Down");
|
||||
|
||||
|
||||
public string Image => Constant.QueryTextBoxIconImagePath;
|
||||
|
|
@ -1116,6 +1181,7 @@ namespace Flow.Launcher.ViewModel
|
|||
|
||||
public async void Hide()
|
||||
{
|
||||
lasthistoryindex = 1;
|
||||
// Trick for no delay
|
||||
MainWindowOpacity = 0;
|
||||
lastContextMenuResult = new Result();
|
||||
|
|
|
|||
Loading…
Reference in a new issue