From 3f3e837c36c2adb022beb054ff0778e6505ad71e Mon Sep 17 00:00:00 2001 From: Jaime Bernardo Date: Thu, 1 Sep 2022 16:56:19 +0100 Subject: [PATCH] [QuickAccent]Add a setting for the menu delay time (#20221) --- .../Services/SettingsService.cs | 1 + .../PowerAccentProperties.cs | 4 ++++ .../ViewModels/PowerAccentViewModel.cs | 23 +++++++++++++++++++ .../Settings.UI/Strings/en-us/Resources.resw | 12 +++++++++- .../Settings.UI/Views/PowerAccentPage.xaml | 14 ++++++++++- 5 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs b/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs index 6463dbc9be..4ed8cf9084 100644 --- a/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs +++ b/src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs @@ -48,6 +48,7 @@ public class SettingsService if (settings != null) { ActivationKey = settings.Properties.ActivationKey; + InputTime = settings.Properties.InputTime.Value; switch (settings.Properties.ToolbarPosition.Value) { case "Top center": diff --git a/src/settings-ui/Settings.UI.Library/PowerAccentProperties.cs b/src/settings-ui/Settings.UI.Library/PowerAccentProperties.cs index cde414cc71..586eb58249 100644 --- a/src/settings-ui/Settings.UI.Library/PowerAccentProperties.cs +++ b/src/settings-ui/Settings.UI.Library/PowerAccentProperties.cs @@ -16,10 +16,14 @@ namespace Microsoft.PowerToys.Settings.UI.Library [JsonPropertyName("toolbar_position")] public StringProperty ToolbarPosition { get; set; } + [JsonPropertyName("input_time_ms")] + public IntProperty InputTime { get; set; } + public PowerAccentProperties() { ActivationKey = PowerAccentActivationKey.Both; ToolbarPosition = "Top center"; + InputTime = new IntProperty(200); } } } diff --git a/src/settings-ui/Settings.UI.Library/ViewModels/PowerAccentViewModel.cs b/src/settings-ui/Settings.UI.Library/ViewModels/PowerAccentViewModel.cs index b895c8eb14..5f7ebcc6f3 100644 --- a/src/settings-ui/Settings.UI.Library/ViewModels/PowerAccentViewModel.cs +++ b/src/settings-ui/Settings.UI.Library/ViewModels/PowerAccentViewModel.cs @@ -41,6 +41,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels _powerAccentSettings = new PowerAccentSettings(); } + _inputTimeMs = _powerAccentSettings.Properties.InputTime.Value; + switch (_powerAccentSettings.Properties.ToolbarPosition.Value) { case "Top center": @@ -111,6 +113,27 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels } } + private int _inputTimeMs = 200; + + public int InputTimeMs + { + get + { + return _inputTimeMs; + } + + set + { + if (value != _inputTimeMs) + { + _inputTimeMs = value; + _powerAccentSettings.Properties.InputTime.Value = value; + OnPropertyChanged(nameof(InputTimeMs)); + RaisePropertyChanged(); + } + } + } + private int _toolbarPositionIndex; public int ToolbarPositionIndex diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index 8ac63706f4..7e4bf35476 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -2328,7 +2328,17 @@ Activate by holding the key for the character you want to add an accent to, then Right - + + Behavior + + + Input delay (ms) + ms = milliseconds + + + Hold the key for this long to make the accent menu appear (ms) + ms = milliseconds + Learn more about Text Extractor diff --git a/src/settings-ui/Settings.UI/Views/PowerAccentPage.xaml b/src/settings-ui/Settings.UI/Views/PowerAccentPage.xaml index d811654f8d..ed405757e6 100644 --- a/src/settings-ui/Settings.UI/Views/PowerAccentPage.xaml +++ b/src/settings-ui/Settings.UI/Views/PowerAccentPage.xaml @@ -55,7 +55,19 @@ - + + + + + + +