Refactoring blur

1. Refactoring blur, see discussion in : 7f8bb80
2. Releated issue: #330
This commit is contained in:
bao-qian
2015-11-29 06:29:32 +00:00
parent a8c6a97579
commit 38791e50ea
17 changed files with 131 additions and 163 deletions

View File

@@ -1,4 +1,5 @@
using System;
using System.IO;
using System.Linq;
using System.Windows;
using Wox.Core.i18n;
@@ -9,34 +10,34 @@ namespace Wox.Core.UI
{
public static class ResourceMerger
{
private static void RemoveResource(string resourceDirectoryName)
private static void RemoveResource(string directoryName)
{
var mergedDictionaries = Application.Current.Resources.MergedDictionaries;
foreach (var resource in mergedDictionaries)
directoryName = $"{Path.DirectorySeparatorChar}{directoryName}";
var dictionaries = Application.Current.Resources.MergedDictionaries;
foreach (var resource in dictionaries)
{
int directoryPosition = resource.Source.Segments.Length - 2;
string currentDirectoryName = resource.Source.Segments[directoryPosition];
if (currentDirectoryName == resourceDirectoryName)
string currentDirectoryName = Path.GetDirectoryName(resource.Source.AbsolutePath);
if (currentDirectoryName == directoryName)
{
mergedDictionaries.Remove(resource);
dictionaries.Remove(resource);
break;
}
}
}
public static void ApplyThemeResource(Theme.Theme t)
public static void UpdateResource(Theme.Theme t)
{
RemoveResource(Theme.Theme.DirectoryName);
Application.Current.Resources.MergedDictionaries.Add(t.GetResourceDictionary());
}
public static void ApplyLanguageResources(Internationalization i)
public static void UpdateResources(Internationalization i)
{
RemoveResource(Internationalization.DirectoryName);
Application.Current.Resources.MergedDictionaries.Add(i.GetResourceDictionary());
}
internal static void ApplyPluginLanguages()
internal static void UpdatePluginLanguages()
{
RemoveResource(PluginManager.DirectoryName);
foreach (var languageFile in PluginManager.GetPluginsForInterface<IPluginI18n>().