/// <summary> /// 現在の設定に合わせて、キーアサイン一覧を更新します。 /// </summary> public static void ReloadAssign() { assignDescription = null; if (!String.IsNullOrEmpty(Setting.Instance.KeyAssignProperty.KeyAssignFile) && Setting.Instance.KeyAssignProperty.KeyAssignFile != KeyAssignProperty.DefaultAssignFileName) { try { assignDescription = AssignLoader.LoadAssign(KeyAssignHelper.GetPath(Setting.Instance.KeyAssignProperty.KeyAssignFile)); } catch (Exception e) { ExceptionStorage.Register(e, ExceptionCategory.ConfigurationError, "キーアサインファイルを読み込めませんでした: " + Setting.Instance.KeyAssignProperty.KeyAssignFile, ReloadAssign); assignDescription = null; } } if (assignDescription == null) { try { assignDescription = AssignLoader.LoadAssign(KeyAssignHelper.GetPath(KeyAssignProperty.DefaultAssignFileName)); } catch (Exception e) { ExceptionStorage.Register(e, ExceptionCategory.InternalError, "デフォルト キーアサインファイルが破損しています。Krileを再インストールしてください。", ReloadAssign); } } OnKeyAssignUpdated(EventArgs.Empty); }
public static void Init() { KeyAssignCore.KeyAssignUpdated += (sender, e) => { if (!changed) { var lastException = ExceptionStorage.Exceptions.LastOrDefault(); if (lastException != null && lastException.Message.Contains("キーアサインファイル")) { ExceptionStorage.Remove(lastException); } SetAssignDescription(null); if (!String.IsNullOrEmpty(Setting.Instance.KeyAssignProperty.KeyAssignFile) && Setting.Instance.KeyAssignProperty.KeyAssignFile != KeyAssignProperty.DefaultAssignFileName) { try { SetAssignDescription(LoadAssign( AssignParser.Parse(KeyAssignHelper.GetPath( Setting.Instance.KeyAssignProperty.KeyAssignFile )) )); } catch (Exception ex) { ExceptionStorage.Register(ex, ExceptionCategory.ConfigurationError, "キーアサインファイルを読み込めませんでした: " + Setting.Instance.KeyAssignProperty.KeyAssignFile); SetAssignDescription(null); } } if (GetAssignDescription() == null) { try { SetAssignDescription(LoadAssign( AssignParser.Parse(KeyAssignHelper.GetPath( KeyAssignProperty.DefaultAssignFileName )) )); } catch (Exception ex) { ExceptionStorage.Register(ex, ExceptionCategory.InternalError, "デフォルト キーアサインファイルが破損しています。Krileを再インストールしてください。"); } } changed = true; RaiseKeyAssignUpdated(); } else { changed = false; } }; }