[PTRun][TimeDate] Change global query setting to ignore number input too (#18157)

* add new setting

* fix spelling

* update/fix setting

* fixes

* make setting default true and update tests

* fix spelling

* change settings/behavior

* docs and tests

* fix condition
This commit is contained in:
Heiko 2022-05-18 16:27:02 +02:00 committed by GitHub
parent 260b55eebc
commit 181b1e45da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 13 deletions

View File

@ -69,12 +69,12 @@ The following formats are currently available:
- All available settings for the plugin are defined in the [`TimeDateSettings`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeDateSettings.cs) class of the plugin. The settings can be accessed everywhere in the plugin code via the static class instance `TimeDateSettings.Instance`.
- We have the following settings that the user can configure to change the behavior of the plugin:
| Key | Default value | Name/Description |
|--------------|-----------|------------|
| `OnlyDateTimeNowGlobal` | `true` | Show only 'Time', 'Date', and 'Now' result on global queries |
| `TimeWithSeconds` | `false` | Show time with seconds (Applies to 'Time' and 'Now' result) |
| `DateWithWeekday` | `false` | Show date with weekday and name of month (Applies to 'Date' and 'Now' result) |
| `HideNumberMessageOnGlobalQuery` | `false` | Hide 'Invalid number input' error message on global queries |
| Key | Default value | Name | Description |
|--------------|-----------|------------|------------|
| `OnlyDateTimeNowGlobal` | `true` | Show only 'Time', 'Date', and 'Now' result for system time on global queries | Regardless of this setting, for global queries the first word of the query has to be a complete match. |
| `TimeWithSeconds` | `false` | Show time with seconds | This setting applies to the 'Time' and 'Now' result. |
| `DateWithWeekday` | `false` | Show date with weekday and name of month | This setting applies to the 'Date' and 'Now' result. |
| `HideNumberMessageOnGlobalQuery` | `false` | Hide 'Invalid number input' error message on global queries | |
## Classes

View File

@ -38,8 +38,8 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests
[DataRow("current", 3)]
[DataRow("year", 0)]
[DataRow("", 0)]
[DataRow("time::10:10:10", 2)]
[DataRow("date::10/10/10", 2)]
[DataRow("time::10:10:10", 0)]
[DataRow("date::10/10/10", 0)]
public void CountWithoutPluginKeyword(string typedString, int expectedResultCount)
{
// Setup
@ -82,6 +82,10 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests
[DataRow("and time", 1)] // match if term is conjunction and other words
[DataRow("date and time", 1)] // Match if first word is a full word match
[DataRow("ate and time", 0)] // Don't match if first word is not a full word match
[DataRow("10/10/10", 0)] // Don't match number only input (Setting 'Only Date, Time, Now on global results' is default on)
[DataRow("10:10:10", 0)] // Don't match number only input (Setting 'Only Date, Time, Now on global results' is default on)
[DataRow("10 10 10", 0)] // Don't match number only input (Setting 'Only Date, Time, Now on global results' is default on)
[DataRow("ft10", 1)] // Don't match number input with prefix (Setting 'Only Date, Time, Now on global results' is default on) => Test behave strange here.
public void ValidateBehaviorOnGlobalQueries(string typedString, int expectedResultCount)
{
// Setup

View File

@ -56,9 +56,10 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components
}
// Switch search type
if (isEmptySearchInput)
if (isEmptySearchInput || (!isKeywordSearch && TimeDateSettings.Instance.OnlyDateTimeNowGlobal))
{
// Return all results for system time/date on empty keyword search
// or only time, date and now results for system time on global queries if the corresponding setting is enabled
availableFormats.AddRange(AvailableResultsList.GetList(isKeywordSearch));
}
else if (Regex.IsMatch(searchTerm, @".+" + Regex.Escape(InputDelimiter) + @".+"))
@ -79,7 +80,7 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components
}
else
{
// Search for specified format with system time/date
// Search for specified format with system time/date (All other cases)
availableFormats.AddRange(AvailableResultsList.GetList(isKeywordSearch));
}

View File

@ -29,7 +29,7 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components
private static TimeDateSettings instance;
/// <summary>
/// Gets a value indicating whether to show only the time and date in global results or not
/// Gets a value indicating whether to show only the time and date for system time in global results or not
/// </summary>
internal bool OnlyDateTimeNowGlobal { get; private set; }

View File

@ -430,7 +430,7 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Properties {
}
/// <summary>
/// Looks up a localized string similar to Show only &apos;Time&apos;, &apos;Date&apos; and &apos;Now&apos; result on global queries.
/// Looks up a localized string similar to Show only &apos;Time&apos;, &apos;Date&apos; and &apos;Now&apos; result for system time on global queries.
/// </summary>
internal static string Microsoft_plugin_timedate_SettingOnlyDateTimeNowGlobal {
get {

View File

@ -256,7 +256,7 @@
<value>Hide 'Invalid number input' error message on global queries</value>
</data>
<data name="Microsoft_plugin_timedate_SettingOnlyDateTimeNowGlobal" xml:space="preserve">
<value>Show only 'Time', 'Date' and 'Now' result on global queries</value>
<value>Show only 'Time', 'Date' and 'Now' result for system time on global queries</value>
</data>
<data name="Microsoft_plugin_timedate_SettingOnlyDateTimeNowGlobal_Description" xml:space="preserve">
<value>Regardless of this setting, for global queries the first word of the query has to be a complete match.</value>