diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml index 3df1f468d8c..1c0077db252 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Languages/en.xaml @@ -4,6 +4,9 @@ Activate {0} plugin action keyword + Settings: {0} + Open the settings page for the {0} plugin + Plugin Indicator Provides plugins action words suggestions diff --git a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs index 631d3daee49..a0c6371f0ba 100644 --- a/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.PluginIndicator/Main.cs @@ -3,7 +3,7 @@ namespace Flow.Launcher.Plugin.PluginIndicator { - public class Main : IPlugin, IPluginI18n, IHomeQuery + public class Main : IPlugin, IPluginI18n, IHomeQuery, IContextMenu { internal static PluginInitContext Context { get; private set; } @@ -38,6 +38,7 @@ from pluginPair in nonGlobalPlugins[keyword] SubTitle = Localize.flowlauncher_plugin_pluginindicator_result_subtitle(plugin.Name), Score = score, IcoPath = plugin.IcoPath, + ContextData = plugin, AutoCompleteText = $"{keyword}{Plugin.Query.TermSeparator}", Action = c => { @@ -48,6 +49,23 @@ from pluginPair in nonGlobalPlugins[keyword] return [.. results]; } + public List LoadContextMenus(Result selectedResult) + { + if (selectedResult.ContextData is not PluginMetadata plugin) + return []; + + return new List + { + new Result + { + Title = Localize.flowlauncher_plugin_pluginindicator_plugin_settings_title(plugin.Name), + SubTitle = Localize.flowlauncher_plugin_pluginindicator_plugin_settings_subtitle(plugin.Name), + IcoPath = plugin.IcoPath, // icon of indicated plugin + Action = _ => Context.API.OpenPluginSettingsWindow(plugin.ID) + } + }; + } + private static Dictionary> GetNonGlobalPlugins() { var nonGlobalPlugins = new Dictionary>();