/// <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 void Loaded() { KeyAssignCore.RegisterOperation("SookIkemen", () => KeyAssignHelper.ExecuteTabAction(tab => { try { tab.TabProperty.LinkAccountInfos.ForEach(a => PostOffice.UpdateTweet(a, "スークイケメンナーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #sook_ikemen")); } catch (Exception e) { ExceptionStorage.Register(e, ExceptionCategory.PluginError, "スークイケメンナーーーーーーーーーーーーーーに失敗しました: " + e.Message); } })); KeyAssignCore.RegisterOperation("SenselessRetweet", () => KeyAssignHelper.ExecuteTVMAction(tvm => { var ts = tvm.Tweet.Status as TwitterStatus; if (ts == null) { return; } KernelService.MainWindowViewModel.InputBlockViewModel.SetOpenText(true, true); KernelService.MainWindowViewModel.InputBlockViewModel.SetText(BuildSenseless(ts)); })); KeyAssignCore.RegisterOperation("SenselessRetweetFast", () => KeyAssignHelper.ExecuteTVMAction(tvm => { try { var ts = tvm.Tweet.Status as TwitterStatus; if (ts == null) { return; } tvm.Parent.TabProperty.LinkAccountInfos.ForEach( ai => PostOffice.UpdateTweet(ai, BuildSenseless(ts))); } catch (Exception e) { ExceptionStorage.Register(e, ExceptionCategory.PluginError, "非常識RTに失敗しました: " + e.Message); } })); KernelService.AddMenu("スークイケメンナー", () => KeyAssignHelper.ExecuteTabAction(tab => { try { tab.TabProperty.LinkAccountInfos.ForEach(a => PostOffice.UpdateTweet(a, "スークイケメンナーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #sook_ikemen")); } catch (Exception e) { ExceptionStorage.Register(e, ExceptionCategory.PluginError, "スークイケメンナーーーーーーーーーーーーーーに失敗しました: " + e.Message); } })); }
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; } }; }
private void ExecTVMAction(Action <TabDependentTweetViewModel> action) { KeyAssignHelper.ExecuteTVMAction(action); }
private void ExecTabAction(Action <TabViewModel> action) { KeyAssignHelper.ExecuteTabAction(action); }