OSDN Git Service

発言のダブルクリック時の動作を列挙体ListItemDoubleClickActionTypeで定義
authorKimura Youichi <kim.upsilon@bucyou.net>
Sat, 26 Mar 2022 22:20:24 +0000 (07:20 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 26 Mar 2022 22:42:34 +0000 (07:42 +0900)
OpenTween/MyCommon.cs
OpenTween/Setting/Panel/ActionPanel.cs
OpenTween/Setting/Panel/ActionPanel.en.resx
OpenTween/Setting/Panel/ActionPanel.resx
OpenTween/Setting/SettingCommon.cs
OpenTween/Tween.cs

index d5657e9..1b998fb 100644 (file)
@@ -121,6 +121,19 @@ namespace OpenTween
             Twurl = -1,
         }
 
+        public enum ListItemDoubleClickActionType
+        {
+            // 設定ファイルの互換性を保つため新規の項目は途中に追加しないこと
+            Reply,
+            Favorite,
+            ShowProfile,
+            ShowTimeline,
+            ShowRelated,
+            OpenHomeInBrowser,
+            OpenStatusInBrowser,
+            None,
+        }
+
         public enum HITRESULT
         {
             None,
index 361c4b3..e5d5606 100644 (file)
@@ -68,7 +68,18 @@ namespace OpenTween.Setting.Panel
             this.HotkeyCode.Enabled = settingCommon.HotkeyEnabled;
 
             this.CheckOpenUserTimeline.Checked = settingCommon.OpenUserTimeline;
-            this.ListDoubleClickActionComboBox.SelectedIndex = settingCommon.ListDoubleClickAction;
+            this.ListDoubleClickActionComboBox.SelectedIndex = settingCommon.ListDoubleClickAction switch
+            {
+                MyCommon.ListItemDoubleClickActionType.None => 0,
+                MyCommon.ListItemDoubleClickActionType.Reply => 1,
+                MyCommon.ListItemDoubleClickActionType.Favorite => 2,
+                MyCommon.ListItemDoubleClickActionType.ShowProfile => 3,
+                MyCommon.ListItemDoubleClickActionType.ShowTimeline => 4,
+                MyCommon.ListItemDoubleClickActionType.ShowRelated => 5,
+                MyCommon.ListItemDoubleClickActionType.OpenHomeInBrowser => 6,
+                MyCommon.ListItemDoubleClickActionType.OpenStatusInBrowser => 7,
+                _ => 1,
+            };
             this.TabMouseLockCheck.Checked = settingCommon.TabMouseLock;
         }
 
@@ -96,7 +107,18 @@ namespace OpenTween.Setting.Panel
             settingCommon.HotkeyKey = (Keys)this.HotkeyText.Tag;
 
             settingCommon.OpenUserTimeline = this.CheckOpenUserTimeline.Checked;
-            settingCommon.ListDoubleClickAction = this.ListDoubleClickActionComboBox.SelectedIndex;
+            settingCommon.ListDoubleClickAction = this.ListDoubleClickActionComboBox.SelectedIndex switch
+            {
+                0 => MyCommon.ListItemDoubleClickActionType.None,
+                1 => MyCommon.ListItemDoubleClickActionType.Reply,
+                2 => MyCommon.ListItemDoubleClickActionType.Favorite,
+                3 => MyCommon.ListItemDoubleClickActionType.ShowProfile,
+                4 => MyCommon.ListItemDoubleClickActionType.ShowTimeline,
+                5 => MyCommon.ListItemDoubleClickActionType.ShowRelated,
+                6 => MyCommon.ListItemDoubleClickActionType.OpenHomeInBrowser,
+                7 => MyCommon.ListItemDoubleClickActionType.OpenStatusInBrowser,
+                _ => MyCommon.ListItemDoubleClickActionType.Reply,
+            };
             settingCommon.TabMouseLock = this.TabMouseLockCheck.Checked;
         }
 
index 030e359..e885b4f 100644 (file)
        <data name="Label44.Text"><value>Path to Browser</value></data>
        <data name="Label57.Size" type="System.Drawing.Size, System.Drawing"><value>484, 12</value></data>
        <data name="Label57.Text"><value>Refetch tweets and verify whether marked favorites. This option causes traffic increasement.</value></data>
-       <data name="ListDoubleClickActionComboBox.Items2"><value>Show user's profile</value></data>
-       <data name="ListDoubleClickActionComboBox.Items3"><value>Show user's timeline</value></data>
-       <data name="ListDoubleClickActionComboBox.Items4"><value>Show Relational tweet</value></data>
-       <data name="ListDoubleClickActionComboBox.Items5"><value>Open user's home of twitter.com</value></data>
-       <data name="ListDoubleClickActionComboBox.Items6"><value>Open status of twitter.com</value></data>
-       <data name="ListDoubleClickActionComboBox.Items7"><value>Not bihavier</value></data>
+       <data name="ListDoubleClickActionComboBox.Items"><value>Do nothing</value></data>
+       <data name="ListDoubleClickActionComboBox.Items3"><value>Show user's profile</value></data>
+       <data name="ListDoubleClickActionComboBox.Items4"><value>Show user's timeline</value></data>
+       <data name="ListDoubleClickActionComboBox.Items5"><value>Show Relational tweet</value></data>
+       <data name="ListDoubleClickActionComboBox.Items6"><value>Open user's home of twitter.com</value></data>
+       <data name="ListDoubleClickActionComboBox.Items7"><value>Open status of twitter.com</value></data>
        <data name="PlaySnd.Size" type="System.Drawing.Size, System.Drawing"><value>215, 16</value></data>
        <data name="PlaySnd.Text"><value>Play sounds when new status arrived</value></data>
        <data name="TabMouseLockCheck.Size" type="System.Drawing.Size, System.Drawing"><value>157, 16</value></data>
index 4eba039..f9bf5b6 100644 (file)
        <data name="Label57.Size" type="System.Drawing.Size, System.Drawing"><value>340, 12</value></data>
        <data name="Label57.TabIndex" type="System.Int32, mscorlib"><value>27</value></data>
        <data name="Label57.Text"><value>発言を再取得してFav結果を検証します。通信量が増えるのでOff推奨</value></data>
-       <data name="ListDoubleClickActionComboBox.Items"><value>Reply</value></data>
-       <data name="ListDoubleClickActionComboBox.Items1"><value>Favorite</value></data>
-       <data name="ListDoubleClickActionComboBox.Items2"><value>プロフィール表示</value></data>
-       <data name="ListDoubleClickActionComboBox.Items3"><value>ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\82¿ã\82¤ã\83 ã\83©ã\82¤ã\83³ã\82\92表示</value></data>
-       <data name="ListDoubleClickActionComboBox.Items4"><value>関連発言表示</value></data>
-       <data name="ListDoubleClickActionComboBox.Items5"><value>ユーザーのHomeを開く</value></data>
-       <data name="ListDoubleClickActionComboBox.Items6"><value>ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82\92Webã\81§開く</value></data>
-       <data name="ListDoubleClickActionComboBox.Items7"><value>ã\81ªã\81\97</value></data>
+       <data name="ListDoubleClickActionComboBox.Items"><value>なし</value></data>
+       <data name="ListDoubleClickActionComboBox.Items1"><value>Reply</value></data>
+       <data name="ListDoubleClickActionComboBox.Items2"><value>Favorite</value></data>
+       <data name="ListDoubleClickActionComboBox.Items3"><value>ã\83\97ã\83­ã\83\95ã\82£ã\83¼ã\83«表示</value></data>
+       <data name="ListDoubleClickActionComboBox.Items4"><value>ユーザーのタイムラインを表示</value></data>
+       <data name="ListDoubleClickActionComboBox.Items5"><value>関連発言表示</value></data>
+       <data name="ListDoubleClickActionComboBox.Items6"><value>ã\83¦ã\83¼ã\82¶ã\83¼ã\81®Homeã\82\92開く</value></data>
+       <data name="ListDoubleClickActionComboBox.Items7"><value>ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82\92Webã\81§é\96\8bã\81\8f</value></data>
        <data name="ListDoubleClickActionComboBox.Location" type="System.Drawing.Point, System.Drawing"><value>263, 209</value></data>
        <data name="ListDoubleClickActionComboBox.Size" type="System.Drawing.Size, System.Drawing"><value>232, 20</value></data>
        <data name="ListDoubleClickActionComboBox.TabIndex" type="System.Int32, mscorlib"><value>31</value></data>
index 0268e35..e9bd680 100644 (file)
@@ -219,7 +219,17 @@ namespace OpenTween
         public int ListCountApi = 100;
         public int UseImageService = 0;
         public string UseImageServiceName = "";
-        public int ListDoubleClickAction = 0;
+
+        [XmlIgnore]
+        public MyCommon.ListItemDoubleClickActionType ListDoubleClickAction { get; set; } = MyCommon.ListItemDoubleClickActionType.Reply;
+
+        [XmlElement(ElementName = nameof(ListDoubleClickAction))]
+        public int ListDoubleClickActionNumeric
+        {
+            get => (int)this.ListDoubleClickAction;
+            set => this.ListDoubleClickAction = (MyCommon.ListItemDoubleClickActionType)value;
+        }
+
         public string UserAppointUrl = "";
         public bool HideDuplicatedRetweets = false;
         public bool EnableImgAzyobuziNet = true;
index 52ef312..d581ede 100644 (file)
@@ -2887,30 +2887,31 @@ namespace OpenTween
         {
             switch (SettingManager.Common.ListDoubleClickAction)
             {
-                case 0:
+                case MyCommon.ListItemDoubleClickActionType.Reply:
                     this.MakeReplyText();
                     break;
-                case 1:
+                case MyCommon.ListItemDoubleClickActionType.Favorite:
                     await this.FavoriteChange(true);
                     break;
-                case 2:
+                case MyCommon.ListItemDoubleClickActionType.ShowProfile:
                     var post = this.CurrentPost;
                     if (post != null)
                         await this.ShowUserStatus(post.ScreenName, false);
                     break;
-                case 3:
+                case MyCommon.ListItemDoubleClickActionType.ShowTimeline:
                     await this.ShowUserTimeline();
                     break;
-                case 4:
+                case MyCommon.ListItemDoubleClickActionType.ShowRelated:
                     this.ShowRelatedStatusesMenuItem_Click(this.ShowRelatedStatusesMenuItem, EventArgs.Empty);
                     break;
-                case 5:
+                case MyCommon.ListItemDoubleClickActionType.OpenHomeInBrowser:
                     this.AuthorOpenInBrowserMenuItem_Click(this.AuthorOpenInBrowserContextMenuItem, EventArgs.Empty);
                     break;
-                case 6:
+                case MyCommon.ListItemDoubleClickActionType.OpenStatusInBrowser:
                     this.StatusOpenMenuItem_Click(this.StatusOpenMenuItem, EventArgs.Empty);
                     break;
-                case 7:
+                case MyCommon.ListItemDoubleClickActionType.None:
+                default:
                     // 動作なし
                     break;
             }