Exemple #1
0
 /// <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);
 }
Exemple #2
0
 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;
                }
            };
        }
Exemple #4
0
 private void ExecTVMAction(Action <TabDependentTweetViewModel> action)
 {
     KeyAssignHelper.ExecuteTVMAction(action);
 }
Exemple #5
0
 private void ExecTabAction(Action <TabViewModel> action)
 {
     KeyAssignHelper.ExecuteTabAction(action);
 }