Refactoring CustomizedPluginConfig

1. Reorder the sequence of initialization of UserSettings.
2. Use dictionary for CustomizedPluginConfigs, so code logic like
`.FirstOrDefault(o => o.ID == id);` are removed
3. part of #389
This commit is contained in:
bao-qian
2016-03-25 01:22:24 +00:00
parent ef1a195036
commit c5d45c6b44
10 changed files with 79 additions and 86 deletions

View File

@@ -567,7 +567,7 @@ namespace Wox
pluginId = pair.Metadata.ID;
pluginIcon.Source = ImageLoader.ImageLoader.Load(pair.Metadata.FullIcoPath);
var customizedPluginConfig = UserSettingStorage.Instance.CustomizedPluginConfigs.FirstOrDefault(o => o.ID == pluginId);
var customizedPluginConfig = UserSettingStorage.Instance.CustomizedPluginConfigs[pluginId];
cbDisablePlugin.IsChecked = customizedPluginConfig != null && customizedPluginConfig.Disabled;
PluginContentPanel.Content = null;
@@ -615,17 +615,17 @@ namespace Wox
id = pair.Metadata.ID;
name = pair.Metadata.Name;
}
var customizedPluginConfig = UserSettingStorage.Instance.CustomizedPluginConfigs.FirstOrDefault(o => o.ID == id);
var customizedPluginConfig = UserSettingStorage.Instance.CustomizedPluginConfigs[id];
if (customizedPluginConfig == null)
{
// todo when this part will be invoked
UserSettingStorage.Instance.CustomizedPluginConfigs.Add(new CustomizedPluginConfig
UserSettingStorage.Instance.CustomizedPluginConfigs[id] = new CustomizedPluginConfig
{
Disabled = cbDisabled.IsChecked ?? true,
ID = id,
Name = name,
ActionKeywords = null
});
};
}
else
{