mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 11:48:06 +01:00
[Settings][Plugin manager] Activation commands: Fix conflict with calc plugin and add warning (#19593)
* update activation commands * add warning and badges * fix spelling * fix badge style * fixes * small fixes missed * spell fix * revert changes for Program plugin * small tweaks * Add Grid control * merge warnings * fix spelling * fix resource * updating conflicitng keywords * remove keywordWarning and warningBagde * fix broken reference * add new information bar
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"ID": "5D69806A5A474115821C3E4C56B9C793",
|
"ID": "5D69806A5A474115821C3E4C56B9C793",
|
||||||
"ActionKeyword": "(",
|
"ActionKeyword": ")",
|
||||||
"IsGlobal": true,
|
"IsGlobal": true,
|
||||||
"Name": "Time and date",
|
"Name": "Time and date",
|
||||||
"Author": "htcfreek",
|
"Author": "htcfreek",
|
||||||
|
|||||||
@@ -56,10 +56,10 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
|
|||||||
settings.Disabled = value;
|
settings.Disabled = value;
|
||||||
NotifyPropertyChanged();
|
NotifyPropertyChanged();
|
||||||
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
||||||
NotifyPropertyChanged(nameof(ShowNotAllowedKeywordWarning));
|
|
||||||
NotifyPropertyChanged(nameof(Enabled));
|
NotifyPropertyChanged(nameof(Enabled));
|
||||||
NotifyPropertyChanged(nameof(DisabledOpacity));
|
NotifyPropertyChanged(nameof(DisabledOpacity));
|
||||||
NotifyPropertyChanged(nameof(IsGlobalAndEnabled));
|
NotifyPropertyChanged(nameof(IsGlobalAndEnabled));
|
||||||
|
NotifyPropertyChanged(nameof(ShowBadgeOnPluginSettingError));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -91,6 +91,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
|
|||||||
NotifyPropertyChanged();
|
NotifyPropertyChanged();
|
||||||
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
||||||
NotifyPropertyChanged(nameof(IsGlobalAndEnabled));
|
NotifyPropertyChanged(nameof(IsGlobalAndEnabled));
|
||||||
|
NotifyPropertyChanged(nameof(ShowBadgeOnPluginSettingError));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -108,8 +109,6 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
|
|||||||
{
|
{
|
||||||
settings.WeightBoost = value;
|
settings.WeightBoost = value;
|
||||||
NotifyPropertyChanged();
|
NotifyPropertyChanged();
|
||||||
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
|
||||||
NotifyPropertyChanged(nameof(ShowNotAllowedKeywordWarning));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,7 +127,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
|
|||||||
settings.ActionKeyword = value;
|
settings.ActionKeyword = value;
|
||||||
NotifyPropertyChanged();
|
NotifyPropertyChanged();
|
||||||
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
|
||||||
NotifyPropertyChanged(nameof(ShowNotAllowedKeywordWarning));
|
NotifyPropertyChanged(nameof(ShowBadgeOnPluginSettingError));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -180,14 +179,9 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
|
|||||||
get => !Disabled && !IsGlobal && string.IsNullOrWhiteSpace(ActionKeyword);
|
get => !Disabled && !IsGlobal && string.IsNullOrWhiteSpace(ActionKeyword);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly List<string> NotAllowedKeywords = new List<string>()
|
public bool ShowBadgeOnPluginSettingError
|
||||||
{
|
{
|
||||||
"~", @"\", @"\\",
|
get => !Disabled && ShowNotAccessibleWarning;
|
||||||
};
|
|
||||||
|
|
||||||
public bool ShowNotAllowedKeywordWarning
|
|
||||||
{
|
|
||||||
get => !Disabled && NotAllowedKeywords.Contains(ActionKeyword);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
|
|||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
e.PropertyName == nameof(PowerLauncherPluginViewModel.ShowNotAccessibleWarning)
|
e.PropertyName == nameof(PowerLauncherPluginViewModel.ShowNotAccessibleWarning)
|
||||||
|| e.PropertyName == nameof(PowerLauncherPluginViewModel.ShowNotAllowedKeywordWarning)
|
|| e.PropertyName == nameof(PowerLauncherPluginViewModel.ShowBadgeOnPluginSettingError)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// Don't trigger a settings update if the changed property is for visual notification.
|
// Don't trigger a settings update if the changed property is for visual notification.
|
||||||
|
|||||||
@@ -1267,9 +1267,6 @@ Made with 💗 by Microsoft and the PowerToys community.</value>
|
|||||||
<data name="Run_AllPluginsDisabled.Message" xml:space="preserve">
|
<data name="Run_AllPluginsDisabled.Message" xml:space="preserve">
|
||||||
<value>Enable at least one plugin to get started</value>
|
<value>Enable at least one plugin to get started</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Run_NotAllowedActionKeyword.Title" xml:space="preserve">
|
|
||||||
<value>This activation command is already in use by another plugin.</value>
|
|
||||||
</data>
|
|
||||||
<data name="Run_PluginUseDescription.Header" xml:space="preserve">
|
<data name="Run_PluginUseDescription.Header" xml:space="preserve">
|
||||||
<value>Plugins</value>
|
<value>Plugins</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -2164,4 +2161,10 @@ From there, simply click on one of the supported files in the File Explorer and
|
|||||||
<data name="AlwaysOnTop_RoundCorners.Content" xml:space="preserve">
|
<data name="AlwaysOnTop_RoundCorners.Content" xml:space="preserve">
|
||||||
<value>Enable round corners</value>
|
<value>Enable round corners</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
<data name="Run_ConflictingKeywordInfo.Title" xml:space="preserve">
|
||||||
|
<value>Some characters and phrases may conflict with global queries of other plugins if you use them as activation command.</value>
|
||||||
|
</data>
|
||||||
|
<data name="Run_ConflictingKeywordInfo_Link.Content" xml:space="preserve">
|
||||||
|
<value>Learn more about conflicting activation commands</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -242,6 +242,18 @@
|
|||||||
</controls:SettingsGroup>
|
</controls:SettingsGroup>
|
||||||
|
|
||||||
<controls:SettingsGroup x:Uid="PowerLauncher_Plugins" IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.EnablePowerLauncher}">
|
<controls:SettingsGroup x:Uid="PowerLauncher_Plugins" IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.EnablePowerLauncher}">
|
||||||
|
|
||||||
|
<muxc:InfoBar x:Uid="Run_ConflictingKeywordInfo"
|
||||||
|
Severity="Informational"
|
||||||
|
IsClosable="False"
|
||||||
|
IsOpen="{x:Bind Mode=OneWay, Path=ViewModel.EnablePowerLauncher}"
|
||||||
|
IsTabStop="{x:Bind Mode=OneWay, Path=ViewModel.EnablePowerLauncher}">
|
||||||
|
<muxc:InfoBar.ActionButton>
|
||||||
|
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_PowerToysRun#direct-activation-commands"
|
||||||
|
x:Uid="Run_ConflictingKeywordInfo_Link"/>
|
||||||
|
</muxc:InfoBar.ActionButton>
|
||||||
|
</muxc:InfoBar>
|
||||||
|
|
||||||
<controls:Setting x:Uid="Run_PluginUseDescription" Icon="">
|
<controls:Setting x:Uid="Run_PluginUseDescription" Icon="">
|
||||||
<controls:Setting.ActionContent>
|
<controls:Setting.ActionContent>
|
||||||
<AutoSuggestBox x:Uid="PowerLauncher_SearchList"
|
<AutoSuggestBox x:Uid="PowerLauncher_SearchList"
|
||||||
@@ -283,14 +295,21 @@
|
|||||||
Height="20" />
|
Height="20" />
|
||||||
</controls:Setting.Icon>
|
</controls:Setting.Icon>
|
||||||
<controls:Setting.ActionContent>
|
<controls:Setting.ActionContent>
|
||||||
<StackPanel Orientation="Horizontal" Spacing="16">
|
<StackPanel Orientation="Horizontal" Spacing="16" >
|
||||||
|
|
||||||
<!-- todo(Stefan): InfoBadge not available
|
<!-- todo(Stefan): InfoBadge not available
|
||||||
<muxc:InfoBadge AutomationProperties.AccessibilityView="Raw"
|
<muxc:InfoBadge AutomationProperties.AccessibilityView="Raw"
|
||||||
Visibility="{x:Bind ShowNotAccessibleWarning}"
|
Visibility="{x:Bind ShowBadgeOnPluginSettingError}"
|
||||||
Style="{StaticResource CriticalIconInfoBadgeStyle}" />
|
Style="{StaticResource CriticalIconInfoBadgeStyle}" />
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<!-- Temporary badge replacement for InfoBadge control (htcfreek). (Normally you need one grid per icon group. But if you want to show two badges at the same place in a StackPanel you have to put all FontIcons into the same Grid.)-->
|
||||||
|
<Grid>
|
||||||
|
<!-- Error badge -->
|
||||||
|
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="{StaticResource InfoBarIconBackgroundGlyph}" Foreground="{ThemeResource InfoBarErrorSeverityIconBackground}" Visibility="{x:Bind ShowBadgeOnPluginSettingError}"/>
|
||||||
|
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="{StaticResource InfoBarErrorIconGlyph}" Foreground="{ThemeResource InfoBarErrorSeverityIconForeground}" Visibility="{x:Bind ShowBadgeOnPluginSettingError}"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
<ToggleSwitch x:Uid="PowerLauncher_EnablePluginToggle"
|
<ToggleSwitch x:Uid="PowerLauncher_EnablePluginToggle"
|
||||||
IsOn="{x:Bind Path=Disabled, Converter={StaticResource BoolNegationConverter}, Mode=TwoWay}"/>
|
IsOn="{x:Bind Path=Disabled, Converter={StaticResource BoolNegationConverter}, Mode=TwoWay}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -311,11 +330,6 @@
|
|||||||
IsTabStop="{x:Bind ShowNotAccessibleWarning}"
|
IsTabStop="{x:Bind ShowNotAccessibleWarning}"
|
||||||
IsOpen="{x:Bind ShowNotAccessibleWarning}"
|
IsOpen="{x:Bind ShowNotAccessibleWarning}"
|
||||||
IsClosable="False" />
|
IsClosable="False" />
|
||||||
<muxc:InfoBar Severity="Error"
|
|
||||||
x:Uid="Run_NotAllowedActionKeyword"
|
|
||||||
IsTabStop="{x:Bind ShowNotAllowedKeywordWarning}"
|
|
||||||
IsOpen="{x:Bind ShowNotAllowedKeywordWarning}"
|
|
||||||
IsClosable="False" />
|
|
||||||
<Rectangle Style="{StaticResource ExpanderSeparatorStyle}" />
|
<Rectangle Style="{StaticResource ExpanderSeparatorStyle}" />
|
||||||
|
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical">
|
||||||
|
|||||||
Reference in New Issue
Block a user