mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-13 19:19:23 +08:00
af7beb2c34
See #352
81 lines
2.9 KiB
C#
81 lines
2.9 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Windows;
|
|
using Wox.Core.i18n;
|
|
using Wox.Core.Plugin;
|
|
using Wox.Core.UserSettings;
|
|
using Wox.Plugin;
|
|
|
|
namespace Wox
|
|
{
|
|
public partial class ActionKeywords : Window
|
|
{
|
|
private PluginMetadata pluginMetadata;
|
|
|
|
public ActionKeywords(string pluginId)
|
|
{
|
|
InitializeComponent();
|
|
PluginPair plugin = PluginManager.GetPluginForId(pluginId);
|
|
if (plugin == null)
|
|
{
|
|
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("cannotFindSpecifiedPlugin"));
|
|
Close();
|
|
return;
|
|
}
|
|
|
|
pluginMetadata = plugin.Metadata;
|
|
}
|
|
|
|
private void ActionKeyword_OnLoaded(object sender, RoutedEventArgs e)
|
|
{
|
|
tbOldActionKeyword.Text = string.Join(Query.ActionKeywordSeperater, pluginMetadata.ActionKeywords.ToArray());
|
|
tbAction.Focus();
|
|
}
|
|
|
|
private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
private void btnDone_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(tbAction.Text))
|
|
{
|
|
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("newActionKeywordCannotBeEmpty"));
|
|
return;
|
|
}
|
|
|
|
var actionKeywords = tbAction.Text.Trim().Split(new[] { Query.ActionKeywordSeperater }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
|
//check new action keyword didn't used by other plugin
|
|
if (actionKeywords[0] != Query.GlobalPluginWildcardSign && PluginManager.AllPlugins.
|
|
SelectMany(p => p.Metadata.ActionKeywords).
|
|
Any(k => actionKeywords.Contains(k)))
|
|
{
|
|
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("newActionKeywordHasBeenAssigned"));
|
|
return;
|
|
}
|
|
|
|
|
|
pluginMetadata.ActionKeywords = actionKeywords;
|
|
var customizedPluginConfig = UserSettingStorage.Instance.CustomizedPluginConfigs.FirstOrDefault(o => o.ID == pluginMetadata.ID);
|
|
if (customizedPluginConfig == null)
|
|
{
|
|
UserSettingStorage.Instance.CustomizedPluginConfigs.Add(new CustomizedPluginConfig()
|
|
{
|
|
Disabled = false,
|
|
ID = pluginMetadata.ID,
|
|
Name = pluginMetadata.Name,
|
|
ActionKeywords = actionKeywords
|
|
});
|
|
}
|
|
else
|
|
{
|
|
customizedPluginConfig.ActionKeywords = actionKeywords;
|
|
}
|
|
UserSettingStorage.Instance.Save();
|
|
MessageBox.Show(InternationalizationManager.Instance.GetTranslation("succeed"));
|
|
Close();
|
|
}
|
|
}
|
|
}
|