diff --git a/Wox.Core/i18n/Internationalization.cs b/Wox.Core/i18n/Internationalization.cs
index 25981e89ca..bf2157603e 100644
--- a/Wox.Core/i18n/Internationalization.cs
+++ b/Wox.Core/i18n/Internationalization.cs
@@ -41,7 +41,6 @@ namespace Wox.Core.i18n
{
Language language = GetLanguageByLanguageCode(languageCode);
ChangeLanguage(language);
- UpdateAllPluginMetadataTranslations();
}
private Language GetLanguageByLanguageCode(string languageCode)
@@ -72,6 +71,7 @@ namespace Wox.Core.i18n
UserSettingStorage.Instance.Language = language.LanguageCode;
UserSettingStorage.Instance.Save();
ResourceMerger.ApplyResources();
+ UpdateAllPluginMetadataTranslations();
}
public ResourceDictionary GetResourceDictionary()
diff --git a/Wox/SettingWindow.xaml b/Wox/SettingWindow.xaml
index 92f9eb8eba..29043715d4 100644
--- a/Wox/SettingWindow.xaml
+++ b/Wox/SettingWindow.xaml
@@ -188,23 +188,6 @@
-
-
-
- Normal
- LayeredWindow
- DWM
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Wox/SettingWindow.xaml.cs b/Wox/SettingWindow.xaml.cs
index 1e8b2190b3..019f80593e 100644
--- a/Wox/SettingWindow.xaml.cs
+++ b/Wox/SettingWindow.xaml.cs
@@ -5,6 +5,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
+using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
@@ -23,6 +24,7 @@ using Wox.Core.i18n;
using Wox.Core.Theme;
using Wox.Core.Updater;
using Wox.Core.UserSettings;
+using Wox.Infrastructure;
using CheckBox = System.Windows.Controls.CheckBox;
using Control = System.Windows.Controls.Control;
using Cursors = System.Windows.Input.Cursors;
@@ -262,23 +264,13 @@ namespace Wox
Process.Start("http://www.getwox.com/theme");
}
-
- private void CbOpacityMode_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- UserSettingStorage.Instance.OpacityMode = (OpacityMode)CbOpacityMode.SelectedItem;
- UserSettingStorage.Instance.Save();
-
- spOpacity.Visibility = UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow ? Visibility.Visible : Visibility.Collapsed;
-
- if (UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow)
- PreviewMainPanel.Opacity = UserSettingStorage.Instance.Opacity;
- else
- PreviewMainPanel.Opacity = 1;
- }
-
-
private void OnThemeTabSelected()
{
+ using (new Timeit("theme load"))
+ {
+ var s = Fonts.SystemFontFamilies;
+ }
+
if (themeTabLoaded) return;
themeTabLoaded = true;
@@ -304,6 +296,7 @@ namespace Wox
UserSettingStorage.Instance.ResultItemFontStretch
));
}
+
resultPanelPreview.AddResults(new List()
{
new Result()
@@ -363,8 +356,6 @@ namespace Wox
}
themeComboBox.SelectedItem = UserSettingStorage.Instance.Theme;
- slOpacity.Value = UserSettingStorage.Instance.Opacity;
- CbOpacityMode.SelectedItem = UserSettingStorage.Instance.OpacityMode;
var wallpaper = WallpaperPathRetrieval.GetWallpaperPath();
if (wallpaper != null && File.Exists(wallpaper))
@@ -379,8 +370,6 @@ namespace Wox
PreviewPanel.Background = new SolidColorBrush(wallpaperColor);
}
- //PreviewPanel
- ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
}
private void TabTheme_OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
@@ -396,8 +385,8 @@ namespace Wox
private void ThemeComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
string themeName = themeComboBox.SelectedItem.ToString();
- ThemeManager.Theme.ChangeTheme(themeName);
UserSettingStorage.Instance.Theme = themeName;
+ DelayChangeTheme();
UserSettingStorage.Instance.Save();
}
@@ -407,9 +396,16 @@ namespace Wox
string queryBoxFontName = cbQueryBoxFont.SelectedItem.ToString();
UserSettingStorage.Instance.QueryBoxFont = queryBoxFontName;
this.cbQueryBoxFontFaces.SelectedItem = ((FontFamily)cbQueryBoxFont.SelectedItem).ChooseRegularFamilyTypeface();
-
+ DelayChangeTheme();
UserSettingStorage.Instance.Save();
- ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
+ }
+
+ private void DelayChangeTheme()
+ {
+ Dispatcher.DelayInvoke("delayChangeTheme", o =>
+ {
+ ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
+ }, TimeSpan.FromMilliseconds(100));
}
private void CbQueryBoxFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -429,7 +425,7 @@ namespace Wox
UserSettingStorage.Instance.QueryBoxFontWeight = typeface.Weight.ToString();
UserSettingStorage.Instance.QueryBoxFontStyle = typeface.Style.ToString();
UserSettingStorage.Instance.Save();
- ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
+ DelayChangeTheme();
}
}
@@ -441,7 +437,7 @@ namespace Wox
this.cbResultItemFontFaces.SelectedItem = ((FontFamily)cbResultItemFont.SelectedItem).ChooseRegularFamilyTypeface();
UserSettingStorage.Instance.Save();
- ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
+ DelayChangeTheme();
}
private void CbResultItemFontFaces_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -459,30 +455,14 @@ namespace Wox
UserSettingStorage.Instance.ResultItemFontWeight = typeface.Weight.ToString();
UserSettingStorage.Instance.ResultItemFontStyle = typeface.Style.ToString();
UserSettingStorage.Instance.Save();
- ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
+ DelayChangeTheme();
}
}
- private void slOpacity_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
- {
- UserSettingStorage.Instance.Opacity = slOpacity.Value;
-
- if (UserSettingStorage.Instance.OpacityMode == OpacityMode.LayeredWindow)
- PreviewMainPanel.Opacity = UserSettingStorage.Instance.Opacity;
- else
- PreviewMainPanel.Opacity = 1;
-
- ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
- Dispatcher.DelayInvoke("delaySaveUserSetting", o =>
- {
- UserSettingStorage.Instance.Save();
- }, TimeSpan.FromMilliseconds(1000));
- }
#endregion
#region Plugin
-
private void lbPlugins_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
ISettingProvider provider = null;