mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Add search delay speed
This commit is contained in:
parent
750cba2dde
commit
0dba9bcc08
5 changed files with 53 additions and 16 deletions
|
|
@ -331,21 +331,26 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
}
|
||||
}
|
||||
|
||||
int searchDelay { get; set; } = 120;
|
||||
public int SearchDelay
|
||||
SearchDelaySpeeds searchDelaySpeed { get; set; } = SearchDelaySpeeds.Medium;
|
||||
public SearchDelaySpeeds SearchDelaySpeed
|
||||
{
|
||||
get => searchDelay;
|
||||
get => searchDelaySpeed;
|
||||
set
|
||||
{
|
||||
searchDelay = value;
|
||||
searchDelaySpeed = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public List<int> SearchDelayRange { get; } = new()
|
||||
public int SearchDelay => SearchDelaySpeed switch
|
||||
{
|
||||
30, 60, 90, 120, 150, 180, 210, 240, 270, 300
|
||||
SearchDelaySpeeds.Slow => 250,
|
||||
SearchDelaySpeeds.ModeratelySlow => 200,
|
||||
SearchDelaySpeeds.Medium => 150,
|
||||
SearchDelaySpeeds.ModeratelyFast => 100,
|
||||
SearchDelaySpeeds.Fast => 50,
|
||||
_ => 150
|
||||
};
|
||||
|
||||
[JsonIgnore]
|
||||
|
|
@ -516,4 +521,13 @@ namespace Flow.Launcher.Infrastructure.UserSettings
|
|||
Mica,
|
||||
MicaAlt
|
||||
}
|
||||
|
||||
public enum SearchDelaySpeeds
|
||||
{
|
||||
Slow,
|
||||
ModeratelySlow,
|
||||
Medium,
|
||||
ModeratelyFast,
|
||||
Fast
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,10 +92,6 @@
|
|||
<system:String x:Key="hideOnStartupToolTip">Flow Launcher search window is hidden in the tray after starting up.</system:String>
|
||||
<system:String x:Key="hideNotifyIcon">Hide tray icon</system:String>
|
||||
<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>
|
||||
<system:String x:Key="searchDelay">Search Delay</system:String>
|
||||
<system:String x:Key="searchDelayToolTip">Delay for a while to search when typing. This reduces interface jumpiness and result load.</system:String>
|
||||
<system:String x:Key="searchDelayTime">Search Delay Time</system:String>
|
||||
<system:String x:Key="searchDelayTimeToolTip">Delay time after which search results appear when typing is stopped. Default is 120ms.</system:String>
|
||||
<system:String x:Key="querySearchPrecision">Query Search Precision</system:String>
|
||||
<system:String x:Key="querySearchPrecisionToolTip">Changes minimum match score required for results.</system:String>
|
||||
<system:String x:Key="SearchPrecisionNone">None</system:String>
|
||||
|
|
@ -106,6 +102,15 @@
|
|||
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
|
||||
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
|
||||
<system:String x:Key="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
|
||||
<system:String x:Key="searchDelay">Search Delay</system:String>
|
||||
<system:String x:Key="searchDelayToolTip">Delay for a while to search when typing. This reduces interface jumpiness and result load.</system:String>
|
||||
<system:String x:Key="searchDelayTime">Search Delay Speed</system:String>
|
||||
<system:String x:Key="searchDelayTimeToolTip">Delay time speed after which search results appear when typing is stopped. Default is medium.</system:String>
|
||||
<system:String x:Key="SearchDelaySpeedSlow">Slow</system:String>
|
||||
<system:String x:Key="SearchDelaySpeedModeratelySlow">Moderately slow</system:String>
|
||||
<system:String x:Key="SearchDelaySpeedMedium">Medium</system:String>
|
||||
<system:String x:Key="SearchDelaySpeedModeratelyFast">Moderately fast</system:String>
|
||||
<system:String x:Key="SearchDelaySpeedFast">Fast</system:String>
|
||||
|
||||
<!-- Setting Plugin -->
|
||||
<system:String x:Key="searchplugin">Search Plugin</system:String>
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ namespace Flow.Launcher
|
|||
case nameof(Settings.SearchQueryResultsWithDelay):
|
||||
SetupSearchTextBoxReactiveness(_settings.SearchQueryResultsWithDelay, _settings.SearchDelay);
|
||||
break;
|
||||
case nameof(Settings.SearchDelay):
|
||||
case nameof(Settings.SearchDelaySpeed):
|
||||
if (_settings.SearchQueryResultsWithDelay)
|
||||
{
|
||||
SetupSearchTextBoxReactiveness(_settings.SearchQueryResultsWithDelay, _settings.SearchDelay);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using Flow.Launcher.Core;
|
||||
|
|
@ -30,6 +31,7 @@ public partial class SettingsPaneGeneralViewModel : BaseModel
|
|||
public class SearchWindowAlignData : DropdownDataGeneric<SearchWindowAligns> { }
|
||||
public class SearchPrecisionData : DropdownDataGeneric<SearchPrecisionScore> { }
|
||||
public class LastQueryModeData : DropdownDataGeneric<LastQueryMode> { }
|
||||
public class SearchDelaySpeedData : DropdownDataGeneric<SearchDelaySpeeds> { }
|
||||
|
||||
public bool StartFlowLauncherOnSystemStartup
|
||||
{
|
||||
|
|
@ -139,17 +141,31 @@ public partial class SettingsPaneGeneralViewModel : BaseModel
|
|||
}
|
||||
}
|
||||
|
||||
public IEnumerable<int> SearchDelayRange => Settings.SearchDelayRange;
|
||||
|
||||
public List<LastQueryModeData> LastQueryModes { get; } =
|
||||
DropdownDataGeneric<LastQueryMode>.GetValues<LastQueryModeData>("LastQuery");
|
||||
|
||||
public List<SearchDelaySpeedData> SearchDelaySpeeds { get; } =
|
||||
DropdownDataGeneric<SearchDelaySpeeds>.GetValues<SearchDelaySpeedData>("SearchDelaySpeed");
|
||||
|
||||
public SearchDelaySpeedData SearchDelaySpeed
|
||||
{
|
||||
get => SearchDelaySpeeds.First(x => x.Value == Settings.SearchDelaySpeed);
|
||||
set
|
||||
{
|
||||
if (Settings.SearchDelaySpeed != value.Value)
|
||||
{
|
||||
Settings.SearchDelaySpeed = value.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateEnumDropdownLocalizations()
|
||||
{
|
||||
DropdownDataGeneric<SearchWindowScreens>.UpdateLabels(SearchWindowScreens);
|
||||
DropdownDataGeneric<SearchWindowAligns>.UpdateLabels(SearchWindowAligns);
|
||||
DropdownDataGeneric<SearchPrecisionScore>.UpdateLabels(SearchPrecisionScores);
|
||||
DropdownDataGeneric<LastQueryMode>.UpdateLabels(LastQueryModes);
|
||||
DropdownDataGeneric<SearchDelaySpeeds>.UpdateLabels(SearchDelaySpeeds);
|
||||
}
|
||||
|
||||
public string Language
|
||||
|
|
|
|||
|
|
@ -188,9 +188,11 @@
|
|||
Icon=""
|
||||
Sub="{DynamicResource searchDelayTimeToolTip}">
|
||||
<ComboBox
|
||||
Width="100"
|
||||
ItemsSource="{Binding SearchDelayRange}"
|
||||
SelectedItem="{Binding Settings.SearchDelay}" />
|
||||
MaxWidth="200"
|
||||
DisplayMemberPath="Display"
|
||||
ItemsSource="{Binding SearchDelaySpeeds}"
|
||||
SelectedItem="{Binding SearchDelaySpeed}"
|
||||
SelectedValuePath="Value" />
|
||||
</cc:Card>
|
||||
</cc:CardGroup>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue