mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Add change support for Flow Launcher hotkeys
This commit is contained in:
parent
e41eccc88d
commit
3b1e014e03
1 changed files with 85 additions and 0 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
@ -37,6 +38,8 @@ internal static class HotKeyMapper
|
||||||
_settings = Ioc.Default.GetService<Settings>();
|
_settings = Ioc.Default.GetService<Settings>();
|
||||||
|
|
||||||
InitializeRegisteredHotkeys();
|
InitializeRegisteredHotkeys();
|
||||||
|
|
||||||
|
_settings.PropertyChanged += Settings_PropertyChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void InitializeRegisteredHotkeys()
|
private static void InitializeRegisteredHotkeys()
|
||||||
|
|
@ -159,6 +162,88 @@ internal static class HotKeyMapper
|
||||||
App.API.LogDebug(ClassName, $"Initialize {_settings.RegisteredHotkeys.Count} hotkeys:\n[\n\t{string.Join(",\n\t", _settings.RegisteredHotkeys)}\n]");
|
App.API.LogDebug(ClassName, $"Initialize {_settings.RegisteredHotkeys.Count} hotkeys:\n[\n\t{string.Join(",\n\t", _settings.RegisteredHotkeys)}\n]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void Settings_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
switch (e.PropertyName)
|
||||||
|
{
|
||||||
|
// Flow Launcher global hotkeys
|
||||||
|
case nameof(_settings.Hotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.Toggle, _settings.Hotkey);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Flow Launcher window hotkeys
|
||||||
|
case nameof(_settings.PreviewHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.Preview, _settings.PreviewHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.AutoCompleteHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.AutoComplete, _settings.AutoCompleteHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.AutoCompleteHotkey2):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.AutoComplete2, _settings.AutoCompleteHotkey2);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SelectNextItemHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SelectNextItem, _settings.SelectNextItemHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SelectNextItemHotkey2):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SelectNextItem2, _settings.SelectNextItemHotkey2);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SelectPrevItemHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SelectPrevItem, _settings.SelectPrevItemHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SelectPrevItemHotkey2):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SelectPrevItem2, _settings.SelectPrevItemHotkey2);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SettingWindowHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SettingWindow, _settings.SettingWindowHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.OpenHistoryHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.OpenHistory, _settings.OpenHistoryHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.OpenContextMenuHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.OpenContextMenu, _settings.OpenContextMenuHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SelectNextPageHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SelectNextPage, _settings.SelectNextPageHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.SelectPrevPageHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.SelectPrevPage, _settings.SelectPrevPageHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.CycleHistoryUpHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.CycleHistoryUp, _settings.CycleHistoryUpHotkey);
|
||||||
|
break;
|
||||||
|
case nameof(_settings.CycleHistoryDownHotkey):
|
||||||
|
ChangeRegisteredHotkey(RegisteredHotkeyType.CycleHistoryDown, _settings.CycleHistoryDownHotkey);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ChangeRegisteredHotkey(RegisteredHotkeyType registeredType, string newHotkeyStr)
|
||||||
|
{
|
||||||
|
var newHotkey = new HotkeyModel(newHotkeyStr);
|
||||||
|
ChangeRegisteredHotkey(registeredType, newHotkey);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ChangeRegisteredHotkey(RegisteredHotkeyType registeredType, HotkeyModel newHotkey)
|
||||||
|
{
|
||||||
|
// Find the old registered hotkey data item
|
||||||
|
var registeredHotkeyData = _settings.RegisteredHotkeys.FirstOrDefault(h => h.RegisteredType == registeredType);
|
||||||
|
|
||||||
|
// If it is not found, return
|
||||||
|
if (registeredHotkeyData == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove the old hotkey
|
||||||
|
RemoveHotkey(registeredHotkeyData);
|
||||||
|
|
||||||
|
// Update the hotkey string
|
||||||
|
registeredHotkeyData.Hotkey = newHotkey;
|
||||||
|
|
||||||
|
// Set the new hotkey
|
||||||
|
SetHotkey(registeredHotkeyData);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// TODO: Deprecated
|
// TODO: Deprecated
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue