Skip to content

Commit 0dba9bc

Browse files
committed
Add search delay speed
1 parent 750cba2 commit 0dba9bc

File tree

5 files changed

+53
-16
lines changed

5 files changed

+53
-16
lines changed

Flow.Launcher.Infrastructure/UserSettings/Settings.cs

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,21 +331,26 @@ public bool SearchQueryResultsWithDelay
331331
}
332332
}
333333

334-
int searchDelay { get; set; } = 120;
335-
public int SearchDelay
334+
SearchDelaySpeeds searchDelaySpeed { get; set; } = SearchDelaySpeeds.Medium;
335+
public SearchDelaySpeeds SearchDelaySpeed
336336
{
337-
get => searchDelay;
337+
get => searchDelaySpeed;
338338
set
339339
{
340-
searchDelay = value;
340+
searchDelaySpeed = value;
341341
OnPropertyChanged();
342342
}
343343
}
344344

345345
[JsonIgnore]
346-
public List<int> SearchDelayRange { get; } = new()
346+
public int SearchDelay => SearchDelaySpeed switch
347347
{
348-
30, 60, 90, 120, 150, 180, 210, 240, 270, 300
348+
SearchDelaySpeeds.Slow => 250,
349+
SearchDelaySpeeds.ModeratelySlow => 200,
350+
SearchDelaySpeeds.Medium => 150,
351+
SearchDelaySpeeds.ModeratelyFast => 100,
352+
SearchDelaySpeeds.Fast => 50,
353+
_ => 150
349354
};
350355

351356
[JsonIgnore]
@@ -516,4 +521,13 @@ public enum BackdropTypes
516521
Mica,
517522
MicaAlt
518523
}
524+
525+
public enum SearchDelaySpeeds
526+
{
527+
Slow,
528+
ModeratelySlow,
529+
Medium,
530+
ModeratelyFast,
531+
Fast
532+
}
519533
}

Flow.Launcher/Languages/en.xaml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,6 @@
9292
<system:String x:Key="hideOnStartupToolTip">Flow Launcher search window is hidden in the tray after starting up.</system:String>
9393
<system:String x:Key="hideNotifyIcon">Hide tray icon</system:String>
9494
<system:String x:Key="hideNotifyIconToolTip">When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.</system:String>
95-
<system:String x:Key="searchDelay">Search Delay</system:String>
96-
<system:String x:Key="searchDelayToolTip">Delay for a while to search when typing. This reduces interface jumpiness and result load.</system:String>
97-
<system:String x:Key="searchDelayTime">Search Delay Time</system:String>
98-
<system:String x:Key="searchDelayTimeToolTip">Delay time after which search results appear when typing is stopped. Default is 120ms.</system:String>
9995
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
10096
<system:String x:Key="querySearchPrecisionToolTip">Changes minimum match score required for results.</system:String>
10197
<system:String x:Key="SearchPrecisionNone">None</system:String>
@@ -106,6 +102,15 @@
106102
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
107103
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
108104
<system:String x:Key="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
105+
<system:String x:Key="searchDelay">Search Delay</system:String>
106+
<system:String x:Key="searchDelayToolTip">Delay for a while to search when typing. This reduces interface jumpiness and result load.</system:String>
107+
<system:String x:Key="searchDelayTime">Search Delay Speed</system:String>
108+
<system:String x:Key="searchDelayTimeToolTip">Delay time speed after which search results appear when typing is stopped. Default is medium.</system:String>
109+
<system:String x:Key="SearchDelaySpeedSlow">Slow</system:String>
110+
<system:String x:Key="SearchDelaySpeedModeratelySlow">Moderately slow</system:String>
111+
<system:String x:Key="SearchDelaySpeedMedium">Medium</system:String>
112+
<system:String x:Key="SearchDelaySpeedModeratelyFast">Moderately fast</system:String>
113+
<system:String x:Key="SearchDelaySpeedFast">Fast</system:String>
109114

110115
<!-- Setting Plugin -->
111116
<system:String x:Key="searchplugin">Search Plugin</system:String>

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ private async void OnLoaded(object sender, RoutedEventArgs _)
270270
case nameof(Settings.SearchQueryResultsWithDelay):
271271
SetupSearchTextBoxReactiveness(_settings.SearchQueryResultsWithDelay, _settings.SearchDelay);
272272
break;
273-
case nameof(Settings.SearchDelay):
273+
case nameof(Settings.SearchDelaySpeed):
274274
if (_settings.SearchQueryResultsWithDelay)
275275
{
276276
SetupSearchTextBoxReactiveness(_settings.SearchQueryResultsWithDelay, _settings.SearchDelay);

Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Linq;
34
using System.Windows.Forms;
45
using CommunityToolkit.Mvvm.Input;
56
using Flow.Launcher.Core;
@@ -30,6 +31,7 @@ public class SearchWindowScreenData : DropdownDataGeneric<SearchWindowScreens> {
3031
public class SearchWindowAlignData : DropdownDataGeneric<SearchWindowAligns> { }
3132
public class SearchPrecisionData : DropdownDataGeneric<SearchPrecisionScore> { }
3233
public class LastQueryModeData : DropdownDataGeneric<LastQueryMode> { }
34+
public class SearchDelaySpeedData : DropdownDataGeneric<SearchDelaySpeeds> { }
3335

3436
public bool StartFlowLauncherOnSystemStartup
3537
{
@@ -139,17 +141,31 @@ public bool PortableMode
139141
}
140142
}
141143

142-
public IEnumerable<int> SearchDelayRange => Settings.SearchDelayRange;
143-
144144
public List<LastQueryModeData> LastQueryModes { get; } =
145145
DropdownDataGeneric<LastQueryMode>.GetValues<LastQueryModeData>("LastQuery");
146146

147+
public List<SearchDelaySpeedData> SearchDelaySpeeds { get; } =
148+
DropdownDataGeneric<SearchDelaySpeeds>.GetValues<SearchDelaySpeedData>("SearchDelaySpeed");
149+
150+
public SearchDelaySpeedData SearchDelaySpeed
151+
{
152+
get => SearchDelaySpeeds.First(x => x.Value == Settings.SearchDelaySpeed);
153+
set
154+
{
155+
if (Settings.SearchDelaySpeed != value.Value)
156+
{
157+
Settings.SearchDelaySpeed = value.Value;
158+
}
159+
}
160+
}
161+
147162
private void UpdateEnumDropdownLocalizations()
148163
{
149164
DropdownDataGeneric<SearchWindowScreens>.UpdateLabels(SearchWindowScreens);
150165
DropdownDataGeneric<SearchWindowAligns>.UpdateLabels(SearchWindowAligns);
151166
DropdownDataGeneric<SearchPrecisionScore>.UpdateLabels(SearchPrecisionScores);
152167
DropdownDataGeneric<LastQueryMode>.UpdateLabels(LastQueryModes);
168+
DropdownDataGeneric<SearchDelaySpeeds>.UpdateLabels(SearchDelaySpeeds);
153169
}
154170

155171
public string Language

Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,11 @@
188188
Icon="&#xE916;"
189189
Sub="{DynamicResource searchDelayTimeToolTip}">
190190
<ComboBox
191-
Width="100"
192-
ItemsSource="{Binding SearchDelayRange}"
193-
SelectedItem="{Binding Settings.SearchDelay}" />
191+
MaxWidth="200"
192+
DisplayMemberPath="Display"
193+
ItemsSource="{Binding SearchDelaySpeeds}"
194+
SelectedItem="{Binding SearchDelaySpeed}"
195+
SelectedValuePath="Value" />
194196
</cc:Card>
195197
</cc:CardGroup>
196198

0 commit comments

Comments
 (0)