/// <summary> /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MetroWindowContentRendered(object sender, EventArgs e) { if (this.IsRendered) { return; } this.IsRendered = true; if (string.IsNullOrWhiteSpace(Settings.Default.UILanguage)) { Settings.Default.UILanguage = Settings.Default.GameLanguage; } else { LocaleHelper.Update(Settings.Default.Culture); } DispatcherHelper.Invoke( delegate { Initializer.LoadAvailableSources(); Initializer.LoadAvailablePlugins(); Initializer.CheckUpdates(); Initializer.SetGlobals(); Initializer.StartMemoryWorkers(); if (Settings.Default.EnableNetworkReading && !Initializer.NetworkWorking) { Initializer.StartNetworkWorker(); } }); Initializer.GetHomePlugin(); Initializer.UpdatePluginConstants(); }
/// <summary> /// </summary> /// <param name="sender"> </param> /// <param name="e"> </param> private static void SettingsPropertyChanged(object sender, PropertyChangedEventArgs e) { Logging.Log(Logger, $"PropertyChanged : {e.PropertyName}"); try { switch (e.PropertyName) { case "CharacterName": Constants.CharacterName = Settings.Default.CharacterName; break; case "GameLanguage": Constants.GameLanguage = Settings.Default.GameLanguage; break; case "UILanguage": if (AppViewModel.Instance.UILanguages.Any(ui => ui.Language == Settings.Default.UILanguage)) { UILanguage uiLanguage = AppViewModel.Instance.UILanguages.First(ui => ui.Language == Settings.Default.UILanguage); Constants.CultureInfo = Settings.Default.Culture = uiLanguage.CultureInfo; LocaleHelper.Update(Settings.Default.Culture); } break; case "ServerName": Constants.ServerName = Settings.Default.ServerName; break; case "EnableNLog": Common.Constants.EnableNLog = Constants.EnableNLog = Settings.Default.EnableNLog; break; case "EnableNetworkReading": Common.Constants.EnableNetworkReading = Constants.EnableNetworkReading = Settings.Default.EnableNetworkReading; if (Settings.Default.EnableNetworkReading) { if (!Initializer.NetworkWorking && Constants.IsOpen) { Initializer.StartNetworkWorker(); } } else { Initializer.StopNetworkWorker(); } break; case "NetworkUseWinPCap": if (Initializer.NetworkWorking) { Initializer.RefreshNetworkWorker(); } break; case "EnableHelpLabels": Constants.EnableHelpLabels = Settings.Default.EnableHelpLabels; break; case "Theme": Constants.Theme = Settings.Default.Theme; break; case "UIScale": Constants.UIScale = Settings.Default.UIScale; break; case "TopMost": if (ShellView.View != null) { ShellView.View.Topmost = Settings.Default.TopMost; } break; case "DefaultAudioDevice": if (Settings.Default.DefaultAudioDevice == "System Default") { Common.Constants.DefaultAudioDevice = Guid.Empty; } else { foreach (DirectSoundDeviceInfo audioDevice in AvailableAudioDevices.Where(device => device.Guid != Guid.Empty)) { if (audioDevice.Description == Settings.Default.DefaultAudioDevice) { Common.Constants.DefaultAudioDevice = audioDevice.Guid; } } } break; } } catch (Exception ex) { Logging.Log(Logger, new LogItem(ex, true)); } }