Skip to content

Commit 25dec33

Browse files
authored
Merge pull request #1930 from Flow-Launcher/dev
Release 1.14.0
2 parents 4394703 + 720f88a commit 25dec33

File tree

107 files changed

+829
-305
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+829
-305
lines changed

.github/workflows/winget.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
# Action can only be run on windows
1010
runs-on: windows-latest
1111
steps:
12-
- uses: vedantmgoyal2009/winget-releaser@v1
12+
- uses: vedantmgoyal2009/winget-releaser@v2
1313
with:
1414
identifier: Flow-Launcher.Flow-Launcher
1515
token: ${{ secrets.WINGET_TOKEN }}

Flow.Launcher.Core/Flow.Launcher.Core.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454

5555
<ItemGroup>
5656
<PackageReference Include="Droplex" Version="1.6.0" />
57-
<PackageReference Include="FSharp.Core" Version="6.0.6" />
58-
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="2.2.1" />
57+
<PackageReference Include="FSharp.Core" Version="7.0.0" />
58+
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="2.3.1" />
5959
<PackageReference Include="squirrel.windows" Version="1.5.2" NoWarn="NU1701" />
6060
</ItemGroup>
6161

Flow.Launcher.Infrastructure/Hotkey/HotkeyModel.cs

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.ComponentModel;
34
using System.Linq;
45
using System.Windows.Input;
5-
using System.Windows.Navigation;
66

77
namespace Flow.Launcher.Infrastructure.Hotkey
88
{
@@ -99,7 +99,7 @@ private void Parse(string hotkeyString)
9999
{
100100
try
101101
{
102-
CharKey = (Key) Enum.Parse(typeof (Key), charKey);
102+
CharKey = (Key)Enum.Parse(typeof(Key), charKey);
103103
}
104104
catch (ArgumentException)
105105
{
@@ -137,8 +137,13 @@ public override string ToString()
137137
}
138138
return string.Join(" + ", keys);
139139
}
140-
141-
public bool Validate()
140+
141+
/// <summary>
142+
/// Validate hotkey
143+
/// </summary>
144+
/// <param name="validateKeyGestrue">Try to validate hotkey as a KeyGesture.</param>
145+
/// <returns></returns>
146+
public bool Validate(bool validateKeyGestrue = false)
142147
{
143148
switch (CharKey)
144149
{
@@ -150,21 +155,57 @@ public bool Validate()
150155
case Key.RightShift:
151156
case Key.LWin:
152157
case Key.RWin:
158+
case Key.None:
153159
return false;
154160
default:
161+
if (validateKeyGestrue)
162+
{
163+
try
164+
{
165+
KeyGesture keyGesture = new KeyGesture(CharKey, ModifierKeys);
166+
}
167+
catch (System.Exception e) when (e is NotSupportedException || e is InvalidEnumArgumentException)
168+
{
169+
return false;
170+
}
171+
}
155172
if (ModifierKeys == ModifierKeys.None)
156173
{
157-
return !((CharKey >= Key.A && CharKey <= Key.Z) ||
158-
(CharKey >= Key.D0 && CharKey <= Key.D9) ||
159-
(CharKey >= Key.NumPad0 && CharKey <= Key.NumPad9));
174+
return !IsPrintableCharacter(CharKey);
160175
}
161176
else
162177
{
163-
return CharKey != Key.None;
178+
return true;
164179
}
165180
}
166181
}
167182

183+
private static bool IsPrintableCharacter(Key key)
184+
{
185+
// https://stackoverflow.com/questions/11881199/identify-if-a-event-key-is-text-not-only-alphanumeric
186+
return (key >= Key.A && key <= Key.Z) ||
187+
(key >= Key.D0 && key <= Key.D9) ||
188+
(key >= Key.NumPad0 && key <= Key.NumPad9) ||
189+
key == Key.OemQuestion ||
190+
key == Key.OemQuotes ||
191+
key == Key.OemPlus ||
192+
key == Key.OemOpenBrackets ||
193+
key == Key.OemCloseBrackets ||
194+
key == Key.OemMinus ||
195+
key == Key.DeadCharProcessed ||
196+
key == Key.Oem1 ||
197+
key == Key.Oem7 ||
198+
key == Key.OemPeriod ||
199+
key == Key.OemComma ||
200+
key == Key.OemMinus ||
201+
key == Key.Add ||
202+
key == Key.Divide ||
203+
key == Key.Multiply ||
204+
key == Key.Subtract ||
205+
key == Key.Oem102 ||
206+
key == Key.Decimal;
207+
}
208+
168209
public override bool Equals(object obj)
169210
{
170211
if (obj is HotkeyModel other)

Flow.Launcher/HotkeyControl.xaml.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ public partial class HotkeyControl : UserControl
1919

2020
public event EventHandler HotkeyChanged;
2121

22+
/// <summary>
23+
/// Designed for Preview Hotkey and KeyGesture.
24+
/// </summary>
25+
public bool ValidateKeyGesture { get; set; } = false;
26+
2227
protected virtual void OnHotkeyChanged() => HotkeyChanged?.Invoke(this, EventArgs.Empty);
2328

2429
public HotkeyControl()
@@ -68,7 +73,7 @@ public async Task SetHotkeyAsync(HotkeyModel keyModel, bool triggerValidate = tr
6873

6974
if (triggerValidate)
7075
{
71-
bool hotkeyAvailable = CheckHotkeyAvailability(keyModel);
76+
bool hotkeyAvailable = CheckHotkeyAvailability(keyModel, ValidateKeyGesture);
7277
CurrentHotkeyAvailable = hotkeyAvailable;
7378
SetMessage(hotkeyAvailable);
7479
OnHotkeyChanged();
@@ -91,13 +96,13 @@ public async Task SetHotkeyAsync(HotkeyModel keyModel, bool triggerValidate = tr
9196
CurrentHotkey = keyModel;
9297
}
9398
}
94-
99+
95100
public Task SetHotkeyAsync(string keyStr, bool triggerValidate = true)
96101
{
97102
return SetHotkeyAsync(new HotkeyModel(keyStr), triggerValidate);
98103
}
99104

100-
private static bool CheckHotkeyAvailability(HotkeyModel hotkey) => hotkey.Validate() && HotKeyMapper.CheckAvailability(hotkey);
105+
private static bool CheckHotkeyAvailability(HotkeyModel hotkey, bool validateKeyGesture) => hotkey.Validate(validateKeyGesture) && HotKeyMapper.CheckAvailability(hotkey);
101106

102107
public new bool IsFocused => tbHotkey.IsFocused;
103108

Flow.Launcher/Languages/da.xaml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
<?xml version="1.0"?>
2-
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib">
1+
<?xml version="1.0" ?>
2+
<ResourceDictionary
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:system="clr-namespace:System;assembly=mscorlib">
36
<!-- MainWindow -->
47
<system:String x:Key="registerHotkeyFailed">Kunne ikke registrere genvejstast: {0}</system:String>
58
<system:String x:Key="couldnotStartCmd">Kunne ikke starte {0}</system:String>
@@ -80,6 +83,7 @@
8083
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
8184
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
8285
<system:String x:Key="plugin">Plugin</system:String>
86+
<system:String x:Key="plugins">Plugins</system:String>
8387
<system:String x:Key="browserMorePlugins">Find flere plugins</system:String>
8488
<system:String x:Key="enable">On</system:String>
8589
<system:String x:Key="disable">Deaktiver</system:String>
@@ -120,6 +124,7 @@
120124

121125
<!-- Setting Theme -->
122126
<system:String x:Key="theme">Tema</system:String>
127+
<system:String x:Key="appearance">Appearance</system:String>
123128
<system:String x:Key="browserMoreThemes">Søg efter flere temaer</system:String>
124129
<system:String x:Key="howToCreateTheme">How to create a theme</system:String>
125130
<system:String x:Key="hiThere">Hi There</system:String>
@@ -152,6 +157,7 @@
152157

153158
<!-- Setting Hotkey -->
154159
<system:String x:Key="hotkey">Genvejstast</system:String>
160+
<system:String x:Key="hotkeys">Genvejstast</system:String>
155161
<system:String x:Key="flowlauncherHotkey">Flow Launcher genvejstast</system:String>
156162
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
157163
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
@@ -174,6 +180,7 @@
174180
<system:String x:Key="deleteCustomHotkeyWarning">Er du sikker på du vil slette {0} plugin genvejstast?</system:String>
175181
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
176182
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
183+
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
177184
<system:String x:Key="queryWindowShadowEffect">Query window shadow effect</system:String>
178185
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
179186
<system:String x:Key="windowWidthSize">Window Width Size</system:String>

Flow.Launcher/Languages/de.xaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
8181
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
8282
<system:String x:Key="plugin">Erweiterung</system:String>
83+
<system:String x:Key="plugins">Erweiterung</system:String>
8384
<system:String x:Key="browserMorePlugins">Suche nach weiteren Plugins</system:String>
8485
<system:String x:Key="enable">Aktivieren</system:String>
8586
<system:String x:Key="disable">Deaktivieren</system:String>
@@ -120,6 +121,7 @@
120121

121122
<!-- Setting Theme -->
122123
<system:String x:Key="theme">Design</system:String>
124+
<system:String x:Key="appearance">Appearance</system:String>
123125
<system:String x:Key="browserMoreThemes">Suche nach weiteren Themes</system:String>
124126
<system:String x:Key="howToCreateTheme">Wie man ein Design erstellt</system:String>
125127
<system:String x:Key="hiThere">Hallo!</system:String>
@@ -152,6 +154,7 @@
152154

153155
<!-- Setting Hotkey -->
154156
<system:String x:Key="hotkey">Tastenkombination</system:String>
157+
<system:String x:Key="hotkeys">Tastenkombination</system:String>
155158
<system:String x:Key="flowlauncherHotkey">Flow Launcher Tastenkombination</system:String>
156159
<system:String x:Key="flowlauncherHotkeyToolTip">Verknüpfung eingeben, um Flow Launcher anzuzeigen/auszublenden.</system:String>
157160
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
@@ -174,6 +177,7 @@
174177
<system:String x:Key="deleteCustomHotkeyWarning">Wollen Sie die {0} Plugin Tastenkombination wirklich löschen?</system:String>
175178
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
176179
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
180+
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
177181
<system:String x:Key="queryWindowShadowEffect">Query window shadow effect</system:String>
178182
<system:String x:Key="shadowEffectCPUUsage">Shadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.</system:String>
179183
<system:String x:Key="windowWidthSize">Window Width Size</system:String>

Flow.Launcher/Languages/en.xaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
8383
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
8484
<system:String x:Key="plugin">Plugin</system:String>
85+
<system:String x:Key="plugins">Plugins</system:String>
8586
<system:String x:Key="browserMorePlugins">Find more plugins</system:String>
8687
<system:String x:Key="enable">On</system:String>
8788
<system:String x:Key="disable">Off</system:String>
@@ -122,6 +123,7 @@
122123

123124
<!-- Setting Theme -->
124125
<system:String x:Key="theme">Theme</system:String>
126+
<system:String x:Key="appearance">Appearance</system:String>
125127
<system:String x:Key="browserMoreThemes">Theme Gallery</system:String>
126128
<system:String x:Key="howToCreateTheme">How to create a theme</system:String>
127129
<system:String x:Key="hiThere">Hi There</system:String>
@@ -154,6 +156,7 @@
154156

155157
<!-- Setting Hotkey -->
156158
<system:String x:Key="hotkey">Hotkey</system:String>
159+
<system:String x:Key="hotkeys">Hotkeys</system:String>
157160
<system:String x:Key="flowlauncherHotkey">Flow Launcher Hotkey</system:String>
158161
<system:String x:Key="flowlauncherHotkeyToolTip">Enter shortcut to show/hide Flow Launcher.</system:String>
159162
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
@@ -162,9 +165,9 @@
162165
<system:String x:Key="openResultModifiersToolTip">Select a modifier key to open selected result via keyboard.</system:String>
163166
<system:String x:Key="showOpenResultHotkey">Show Hotkey</system:String>
164167
<system:String x:Key="showOpenResultHotkeyToolTip">Show result selection hotkey with results.</system:String>
165-
<system:String x:Key="customQueryHotkey">Custom Query Hotkey</system:String>
166-
<system:String x:Key="customQueryShortcut">Custom Query Shortcut</system:String>
167-
<system:String x:Key="builtinShortcuts">Built-in Shortcut</system:String>
168+
<system:String x:Key="customQueryHotkey">Custom Query Hotkeys</system:String>
169+
<system:String x:Key="customQueryShortcut">Custom Query Shortcuts</system:String>
170+
<system:String x:Key="builtinShortcuts">Built-in Shortcuts</system:String>
168171
<system:String x:Key="customQuery">Query</system:String>
169172
<system:String x:Key="customShortcut">Shortcut</system:String>
170173
<system:String x:Key="customShortcutExpansion">Expansion</system:String>

Flow.Launcher/Languages/es-419.xaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0"?>
1+
<?xml version="1.0"?>
22
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib">
33
<!-- MainWindow -->
44
<system:String x:Key="registerHotkeyFailed">Error al registrar la tecla de acceso directo: {0}</system:String>
@@ -80,6 +80,7 @@
8080
<system:String x:Key="searchplugin_Noresult_Title">No results found</system:String>
8181
<system:String x:Key="searchplugin_Noresult_Subtitle">Please try a different search.</system:String>
8282
<system:String x:Key="plugin">Plugin</system:String>
83+
<system:String x:Key="plugins">Plugins</system:String>
8384
<system:String x:Key="browserMorePlugins">Encontrar más plugins</system:String>
8485
<system:String x:Key="enable">Activado</system:String>
8586
<system:String x:Key="disable">Desactivado</system:String>
@@ -120,6 +121,7 @@
120121

121122
<!-- Setting Theme -->
122123
<system:String x:Key="theme">Tema</system:String>
124+
<system:String x:Key="appearance">Appearance</system:String>
123125
<system:String x:Key="browserMoreThemes">Galería de Temas</system:String>
124126
<system:String x:Key="howToCreateTheme">Cómo crear un tema</system:String>
125127
<system:String x:Key="hiThere">Hola</system:String>
@@ -152,6 +154,7 @@
152154

153155
<!-- Setting Hotkey -->
154156
<system:String x:Key="hotkey">Tecla Rápida</system:String>
157+
<system:String x:Key="hotkeys">Tecla Rápida</system:String>
155158
<system:String x:Key="flowlauncherHotkey">Tecla de acceso a Flow Launcher</system:String>
156159
<system:String x:Key="flowlauncherHotkeyToolTip">Introduzca el acceso directo para mostrar/ocultar Flow Launcher.</system:String>
157160
<system:String x:Key="previewHotkey">Preview Hotkey</system:String>
@@ -174,6 +177,7 @@
174177
<system:String x:Key="deleteCustomHotkeyWarning">¿Está seguro que desea eliminar la tecla de acceso directo del plugin {0}?</system:String>
175178
<system:String x:Key="deleteCustomShortcutWarning">Are you sure you want to delete shortcut: {0} with expansion {1}?</system:String>
176179
<system:String x:Key="shortcut_clipboard_description">Get text from clipboard.</system:String>
180+
<system:String x:Key="shortcut_active_explorer_path">Get path from active explorer.</system:String>
177181
<system:String x:Key="queryWindowShadowEffect">Efecto de sombra de ventana de búsqueda</system:String>
178182
<system:String x:Key="shadowEffectCPUUsage">El efecto sombra tiene un uso sustancial de GPU. No se recomienda si el rendimiento de su computadora es limitado.</system:String>
179183
<system:String x:Key="windowWidthSize">Tamaño de Ancho de Ventana</system:String>

0 commit comments

Comments
 (0)