From d4859e0722bc1b26e5eb302023da6848334ad7bc Mon Sep 17 00:00:00 2001 From: Brett Hewitson Date: Fri, 3 Dec 2021 10:00:04 +1000 Subject: [PATCH] New Globalisation Changes --- src/ARKServerManager/App.xaml.cs | 7 +++++ .../Windows/GlobalSettingsControl.xaml.cs | 2 ++ src/ConanServerManager/App.xaml.cs | 7 +++++ .../Windows/GlobalSettingsControl.xaml.cs | 2 ++ .../ResourceDictionaryChangedEventArgs.cs | 14 --------- src/Plugin.Common/PluginHelper.cs | 4 --- .../Windows/ConfigProfileWindow.xaml.cs | 30 ++----------------- .../Windows/ConfigWindow.xaml.cs | 29 +----------------- .../Windows/VersionFeedWindow.xaml | 2 +- .../Windows/VersionFeedWindow.xaml.cs | 29 +----------------- 10 files changed, 23 insertions(+), 103 deletions(-) delete mode 100644 src/Plugin.Common/Events/ResourceDictionaryChangedEventArgs.cs diff --git a/src/ARKServerManager/App.xaml.cs b/src/ARKServerManager/App.xaml.cs index 6df4b3e8..52716ef4 100644 --- a/src/ARKServerManager/App.xaml.cs +++ b/src/ARKServerManager/App.xaml.cs @@ -18,6 +18,7 @@ using System.Linq; using System.Net; using System.Reflection; using System.Runtime.CompilerServices; +using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Xml; @@ -312,6 +313,7 @@ namespace ServerManagerTool PluginHelper.Instance.BetaEnabled = this.BetaVersion; PluginHelper.Instance.LoadPlugins(installPath, true); PluginHelper.Instance.SetFetchProfileCallback(FetchProfiles); + OnResourceDictionaryChanged(Thread.CurrentThread.CurrentCulture.Name); // check if we are starting ASM for the old server restart - no longer supported if (e.Args.Any(a => a.StartsWith(Constants.ARG_AUTORESTART, StringComparison.OrdinalIgnoreCase))) @@ -458,6 +460,11 @@ namespace ServerManagerTool PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + public void OnResourceDictionaryChanged(string languageCode) + { + PluginHelper.Instance.OnResourceDictionaryChanged(languageCode); + } + public static void ReconfigureLogging() { string logDir = Path.Combine(Config.Default.DataDir, Config.Default.LogsDir); diff --git a/src/ARKServerManager/Windows/GlobalSettingsControl.xaml.cs b/src/ARKServerManager/Windows/GlobalSettingsControl.xaml.cs index 87bcef51..75b35541 100644 --- a/src/ARKServerManager/Windows/GlobalSettingsControl.xaml.cs +++ b/src/ARKServerManager/Windows/GlobalSettingsControl.xaml.cs @@ -306,6 +306,8 @@ namespace ServerManagerTool CurrentConfig.CultureName = AvailableLanguages.Instance.SelectedLanguage; PopulateWindowsStatesComboBox(); + + App.Instance.OnResourceDictionaryChanged(CurrentConfig.CultureName); } private void StyleSelectionComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) diff --git a/src/ConanServerManager/App.xaml.cs b/src/ConanServerManager/App.xaml.cs index 3436c135..00eb25a8 100644 --- a/src/ConanServerManager/App.xaml.cs +++ b/src/ConanServerManager/App.xaml.cs @@ -17,6 +17,7 @@ using System.Linq; using System.Net; using System.Reflection; using System.Runtime.CompilerServices; +using System.Threading; using System.Threading.Tasks; using System.Windows; using WPFSharp.Globalizer; @@ -304,6 +305,7 @@ namespace ServerManagerTool PluginHelper.Instance.BetaEnabled = this.BetaVersion; PluginHelper.Instance.LoadPlugins(installPath, true); PluginHelper.Instance.SetFetchProfileCallback(FetchProfiles); + OnResourceDictionaryChanged(Thread.CurrentThread.CurrentCulture.Name); // check if we are starting server manager for server shutdown if (e.Args.Any(a => a.StartsWith(Constants.ARG_AUTOSHUTDOWN1, StringComparison.OrdinalIgnoreCase))) @@ -438,6 +440,11 @@ namespace ServerManagerTool PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + public void OnResourceDictionaryChanged(string languageCode) + { + PluginHelper.Instance.OnResourceDictionaryChanged(languageCode); + } + public static void ReconfigureLogging() { string logDir = Path.Combine(Config.Default.DataPath, Config.Default.LogsRelativePath); diff --git a/src/ConanServerManager/Windows/GlobalSettingsControl.xaml.cs b/src/ConanServerManager/Windows/GlobalSettingsControl.xaml.cs index afd646ea..df398ec8 100644 --- a/src/ConanServerManager/Windows/GlobalSettingsControl.xaml.cs +++ b/src/ConanServerManager/Windows/GlobalSettingsControl.xaml.cs @@ -315,6 +315,8 @@ namespace ServerManagerTool Config.CultureName = AvailableLanguages.Instance.SelectedLanguage; PopulateWindowsStatesComboBox(); + + App.Instance.OnResourceDictionaryChanged(Config.CultureName); } private void StyleSelectionComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) diff --git a/src/Plugin.Common/Events/ResourceDictionaryChangedEventArgs.cs b/src/Plugin.Common/Events/ResourceDictionaryChangedEventArgs.cs deleted file mode 100644 index 94f068eb..00000000 --- a/src/Plugin.Common/Events/ResourceDictionaryChangedEventArgs.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace ServerManagerTool.Plugin.Common.Events -{ - public class ResourceDictionaryChangedEventArgs : EventArgs - { - public ResourceDictionaryChangedEventArgs(string languageCode) - { - LanguageCode = languageCode; - } - - public string LanguageCode; - } -} diff --git a/src/Plugin.Common/PluginHelper.cs b/src/Plugin.Common/PluginHelper.cs index 0f1730bb..8f66f984 100644 --- a/src/Plugin.Common/PluginHelper.cs +++ b/src/Plugin.Common/PluginHelper.cs @@ -1,5 +1,4 @@ using ServerManagerTool.Plugin.Common.Delegates; -using ServerManagerTool.Plugin.Common.Events; using ServerManagerTool.Plugin.Common.Lib; using System; using System.Collections.Generic; @@ -26,8 +25,6 @@ namespace ServerManagerTool.Plugin.Common private FetchProfilesDelegate _fetchProfilesCallback; private bool _disposed; - public EventHandler ResourceDictionaryChanged; - private PluginHelper() { BetaEnabled = false; @@ -250,7 +247,6 @@ namespace ServerManagerTool.Plugin.Common public void OnResourceDictionaryChanged(string languageCode) { LanguageCode = languageCode; - ResourceDictionaryChanged?.Invoke(this, new ResourceDictionaryChangedEventArgs(languageCode)); } internal void OpenConfigForm(string pluginCode, Window owner) diff --git a/src/Plugin.Discord/Windows/ConfigProfileWindow.xaml.cs b/src/Plugin.Discord/Windows/ConfigProfileWindow.xaml.cs index 33403f77..595f4f59 100644 --- a/src/Plugin.Discord/Windows/ConfigProfileWindow.xaml.cs +++ b/src/Plugin.Discord/Windows/ConfigProfileWindow.xaml.cs @@ -1,5 +1,4 @@ using ServerManagerTool.Plugin.Common; -using ServerManagerTool.Plugin.Common.Events; using System; using System.ComponentModel; using System.Diagnostics; @@ -27,9 +26,8 @@ namespace ServerManagerTool.Plugin.Discord.Windows try { ResourceUtils.UpdateResourceDictionary(this, PluginHelper.Instance.LanguageCode); - PluginHelper.Instance.ResourceDictionaryChanged += OnResourceDictionaryChanged; } - catch + catch (Exception) { // do nothing, most likely they are using an older version of a server manager } @@ -88,16 +86,6 @@ namespace ServerManagerTool.Plugin.Discord.Windows if (MessageBox.Show(ResourceUtils.GetResourceString(this.Resources, "ConfigProfileWindow_CloseLabel"), ResourceUtils.GetResourceString(this.Resources, "ConfigProfileWindow_CloseTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) e.Cancel = true; } - - try - { - if (!e.Cancel) - PluginHelper.Instance.ResourceDictionaryChanged -= OnResourceDictionaryChanged; - } - catch - { - // do nothing - } } private void ComboBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e) @@ -305,20 +293,6 @@ namespace ServerManagerTool.Plugin.Discord.Windows expression?.UpdateSource(); } - private void OnResourceDictionaryChanged(object sender, ResourceDictionaryChangedEventArgs e) - { - try - { - ResourceUtils.UpdateResourceDictionary(this, PluginHelper.Instance.LanguageCode); - } - catch (Exception) - { - // do nothing, most likely they are using an older version of a server manager - } - - RefreshAlertTypeList(); - } - private void RefreshAlertTypeList() { var newList = new ComboBoxItemList(); @@ -356,7 +330,7 @@ namespace ServerManagerTool.Plugin.Discord.Windows }); } } - catch + catch (Exception) { // do nothing, most likely they are using an older version of a server manager } diff --git a/src/Plugin.Discord/Windows/ConfigWindow.xaml.cs b/src/Plugin.Discord/Windows/ConfigWindow.xaml.cs index 49a4aa05..97323d5f 100644 --- a/src/Plugin.Discord/Windows/ConfigWindow.xaml.cs +++ b/src/Plugin.Discord/Windows/ConfigWindow.xaml.cs @@ -1,11 +1,7 @@ using ServerManagerTool.Plugin.Common; -using ServerManagerTool.Plugin.Common.Events; using System; using System.Diagnostics; -using System.Globalization; using System.IO; -using System.Reflection; -using System.Resources; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; @@ -28,9 +24,8 @@ namespace ServerManagerTool.Plugin.Discord.Windows try { ResourceUtils.UpdateResourceDictionary(this, PluginHelper.Instance.LanguageCode); - PluginHelper.Instance.ResourceDictionaryChanged += OnResourceDictionaryChanged; } - catch + catch (Exception) { // do nothing, most likely they are using an older version of a server manager } @@ -78,16 +73,6 @@ namespace ServerManagerTool.Plugin.Discord.Windows if (MessageBox.Show(ResourceUtils.GetResourceString(this.Resources, "ConfigWindow_CloseLabel"), ResourceUtils.GetResourceString(this.Resources, "ConfigWindow_CloseTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) e.Cancel = true; } - - try - { - if (!e.Cancel) - PluginHelper.Instance.ResourceDictionaryChanged -= OnResourceDictionaryChanged; - } - catch - { - // do nothing, most likely they are using an older version of a server manager - } } private void ConfigWindow_Loaded(object sender, RoutedEventArgs e) @@ -291,18 +276,6 @@ namespace ServerManagerTool.Plugin.Discord.Windows PluginConfig?.CommitChanges(); } - private void OnResourceDictionaryChanged(object sender, ResourceDictionaryChangedEventArgs e) - { - try - { - ResourceUtils.UpdateResourceDictionary(this, PluginHelper.Instance.LanguageCode); - } - catch (Exception) - { - // do nothing, most likely they are using an older version of a server manager - } - } - #region Drag and Drop private static readonly DependencyProperty DraggedItemProperty = DependencyProperty.Register(nameof(DraggedItem), typeof(ConfigProfile), typeof(ConfigWindow), new PropertyMetadata(null)); diff --git a/src/Plugin.Discord/Windows/VersionFeedWindow.xaml b/src/Plugin.Discord/Windows/VersionFeedWindow.xaml index 8b66b05a..91fedcae 100644 --- a/src/Plugin.Discord/Windows/VersionFeedWindow.xaml +++ b/src/Plugin.Discord/Windows/VersionFeedWindow.xaml @@ -4,7 +4,7 @@ xmlns:local="clr-namespace:ServerManagerTool.Plugin.Discord" xmlns:pc="clr-namespace:ServerManagerTool.Plugin.Common;assembly=ServerManager.Plugin.Common" MinWidth="400" MinHeight="400" Width="640" Height="480" WindowStyle="ToolWindow" WindowStartupLocation="CenterOwner" ShowInTaskbar="False" ResizeMode="CanResizeWithGrip" - Loaded="VersionFeedWindow_Loaded" Closing="VersionFeedWindow_Closing" + Loaded="VersionFeedWindow_Loaded" Icon="../Art/favicon.ico" Title="{DynamicResource VersionFeedWindow_Title}"> diff --git a/src/Plugin.Discord/Windows/VersionFeedWindow.xaml.cs b/src/Plugin.Discord/Windows/VersionFeedWindow.xaml.cs index 2e0053e1..2f9549d9 100644 --- a/src/Plugin.Discord/Windows/VersionFeedWindow.xaml.cs +++ b/src/Plugin.Discord/Windows/VersionFeedWindow.xaml.cs @@ -1,5 +1,4 @@ using ServerManagerTool.Plugin.Common; -using ServerManagerTool.Plugin.Common.Events; using System; using System.Collections.ObjectModel; using System.Linq; @@ -23,9 +22,8 @@ namespace ServerManagerTool.Plugin.Discord.Windows try { ResourceUtils.UpdateResourceDictionary(this, PluginHelper.Instance.LanguageCode); - PluginHelper.Instance.ResourceDictionaryChanged += OnResourceDictionaryChanged; } - catch + catch (Exception) { // do nothing, most likely they are using an older version of a server manager } @@ -54,19 +52,6 @@ namespace ServerManagerTool.Plugin.Discord.Windows set { SetValue(SelectedFeedEntryProperty, value); } } - private void VersionFeedWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) - { - try - { - if (!e.Cancel) - PluginHelper.Instance.ResourceDictionaryChanged -= OnResourceDictionaryChanged; - } - catch - { - // do nothing, most likely they are using an older version of a server manager - } - } - private void VersionFeedWindow_Loaded(object sender, RoutedEventArgs e) { try @@ -100,17 +85,5 @@ namespace ServerManagerTool.Plugin.Discord.Windows SelectedFeedEntry = FeedEntries.OrderByDescending(e => e.Updated).FirstOrDefault(); } - - private void OnResourceDictionaryChanged(object sender, ResourceDictionaryChangedEventArgs e) - { - try - { - ResourceUtils.UpdateResourceDictionary(this, PluginHelper.Instance.LanguageCode); - } - catch (Exception) - { - // do nothing, most likely they are using an older version of a server manager - } - } } }