OSDN Git Service

発言一覧の右クリックメニューに「Source振り分けルール作成」を追加 (fixes #23)
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 9 Feb 2015 14:28:44 +0000 (23:28 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Mon, 9 Feb 2015 14:40:36 +0000 (23:40 +0900)
https://github.com/opentween/OpenTween/issues/23

OpenTween/Resources/ChangeLog.txt
OpenTween/Tween.Designer.cs
OpenTween/Tween.cs
OpenTween/Tween.en.resx
OpenTween/Tween.resx

index 7a4a460..442b9ca 100644 (file)
@@ -7,6 +7,8 @@
  * NEW: 着せ替えアイコン機能についての説明テキストを同梱しました
  * NEW: 短縮URLとして展開の対象とするドメインを追加しました
  * NEW: DPIの異なる環境間で設定ファイルをコピーしても画面幅などが正しく復元されるようになりました
+ * NEW: 発言一覧の右クリックメニューに「Source振り分けルール作成」を追加しました
+  - 選択したツイートの Source を振り分けルールに追加します
  * CHG: 着せ替えアイコン機能で従来より省略可能なアイコンを増やしました
  * CHG: API使用情報やステータスバー上のリクエスト残回数の表示方法を変更しました
   - タブを切り替えるごとに、そのタブが使用しているAPIの残回数を表示するようにしました
index a23df88..2b0aa99 100644 (file)
             this.CreateRuleOpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.CreateTabRuleOpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.CreateIdRuleOpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.CreateSourceRuleOpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.ListManageMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.ToolStripSeparator26 = new System.Windows.Forms.ToolStripSeparator();
             this.ChangeReadOpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.OpenUserSpecifiedUrlMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
             this.DeleteStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.ToolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem();
+            this.SourceRuleMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.RefreshStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.NotifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
             this.ContextMenuFile = new System.Windows.Forms.ContextMenuStrip(this.components);
             // 
             this.CreateRuleOpMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.CreateTabRuleOpMenuItem,
-            this.CreateIdRuleOpMenuItem});
+            this.CreateIdRuleOpMenuItem,
+            this.CreateSourceRuleOpMenuItem});
             this.CreateRuleOpMenuItem.Name = "CreateRuleOpMenuItem";
             resources.ApplyResources(this.CreateRuleOpMenuItem, "CreateRuleOpMenuItem");
             // 
             resources.ApplyResources(this.CreateIdRuleOpMenuItem, "CreateIdRuleOpMenuItem");
             this.CreateIdRuleOpMenuItem.Click += new System.EventHandler(this.IDRuleMenuItem_Click);
             // 
+            // CreateSourceRuleOpMenuItem
+            // 
+            this.CreateSourceRuleOpMenuItem.Name = "CreateSourceRuleOpMenuItem";
+            resources.ApplyResources(this.CreateSourceRuleOpMenuItem, "CreateSourceRuleOpMenuItem");
+            this.CreateSourceRuleOpMenuItem.Click += new System.EventHandler(this.SourceRuleMenuItem_Click);
+            // 
             // ListManageMenuItem
             // 
             this.ListManageMenuItem.Name = "ListManageMenuItem";
             // 
             this.ToolStripMenuItem7.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.TabMenuItem,
-            this.IDRuleMenuItem});
+            this.IDRuleMenuItem,
+            this.SourceRuleMenuItem});
             this.ToolStripMenuItem7.Name = "ToolStripMenuItem7";
             resources.ApplyResources(this.ToolStripMenuItem7, "ToolStripMenuItem7");
             // 
+            // SourceRuleMenuItem
+            // 
+            this.SourceRuleMenuItem.Name = "SourceRuleMenuItem";
+            resources.ApplyResources(this.SourceRuleMenuItem, "SourceRuleMenuItem");
+            this.SourceRuleMenuItem.Click += new System.EventHandler(this.SourceRuleMenuItem_Click);
+            // 
             // RefreshStripMenuItem
             // 
             this.RefreshStripMenuItem.Name = "RefreshStripMenuItem";
         internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator45;
         internal System.Windows.Forms.ToolStripMenuItem LockListSortOrderToolStripMenuItem;
         private ToolStripAPIGauge toolStripApiGauge;
+        private System.Windows.Forms.ToolStripMenuItem CreateSourceRuleOpMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem SourceRuleMenuItem;
 
     }
 }
\ No newline at end of file
index b09069d..eea9517 100644 (file)
@@ -3392,6 +3392,7 @@ namespace OpenTween
                 MoveToFavToolStripMenuItem.Enabled = false;
                 TabMenuItem.Enabled = false;
                 IDRuleMenuItem.Enabled = false;
+                SourceRuleMenuItem.Enabled = false;
                 ReadedStripMenuItem.Enabled = false;
                 UnreadStripMenuItem.Enabled = false;
             }
@@ -3406,6 +3407,7 @@ namespace OpenTween
                 MoveToFavToolStripMenuItem.Enabled = true;
                 TabMenuItem.Enabled = true;
                 IDRuleMenuItem.Enabled = true;
+                SourceRuleMenuItem.Enabled = true;
                 ReadedStripMenuItem.Enabled = true;
                 UnreadStripMenuItem.Enabled = true;
             }
@@ -8890,6 +8892,50 @@ namespace OpenTween
             SaveConfigsTabs();
         }
 
+        private void SourceRuleMenuItem_Click(object sender, EventArgs e)
+        {
+            if (this._curList.SelectedIndices.Count == 0)
+                return;
+
+            // タブ選択ダイアログを表示(or追加)
+            string tabName;
+            if (!this.SelectTab(out tabName))
+                return;
+
+            // フィルタ動作選択ダイアログを表示(移動/コピー, マーク有無)
+            var mv = false;
+            var mk = false;
+            this.MoveOrCopy(ref mv, ref mk);
+
+            var currentTab = this._statuses.Tabs[this._curTab.Text];
+            var filterTab = this._statuses.Tabs[tabName];
+
+            // 振り分けルールに追加するSource
+            var sources = new HashSet<string>();
+
+            foreach (var idx in this._curList.SelectedIndices.Cast<int>())
+            {
+                var post = currentTab[idx];
+                var filterSource = post.Source;
+
+                if (sources.Add(filterSource))
+                {
+                    var filter = new PostFilterRule
+                    {
+                        FilterSource = filterSource,
+                        MoveMatches = mv,
+                        MarkMatches = mk,
+                        UseRegex = false,
+                        FilterByUrl = false,
+                    };
+                    filterTab.AddFilter(filter);
+                }
+            }
+
+            this.ApplyPostFilters();
+            this.SaveConfigsTabs();
+        }
+
         private bool SelectTab(out string tabName)
         {
             do
@@ -11837,6 +11883,7 @@ namespace OpenTween
                 this.OpenFavOpMenuItem.Enabled = false;
                 this.CreateTabRuleOpMenuItem.Enabled = false;
                 this.CreateIdRuleOpMenuItem.Enabled = false;
+                this.CreateSourceRuleOpMenuItem.Enabled = false;
                 this.ReadOpMenuItem.Enabled = false;
                 this.UnreadOpMenuItem.Enabled = false;
             }
@@ -11851,6 +11898,7 @@ namespace OpenTween
                 this.OpenFavOpMenuItem.Enabled = true;
                 this.CreateTabRuleOpMenuItem.Enabled = true;
                 this.CreateIdRuleOpMenuItem.Enabled = true;
+                this.CreateSourceRuleOpMenuItem.Enabled = true;
                 this.ReadOpMenuItem.Enabled = true;
                 this.UnreadOpMenuItem.Enabled = true;
             }
index 4116851..203f443 100644 (file)
     <value>&amp;Open as ...</value>
   </data>
   <data name="CreateTabRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>134, 24</value>
+    <value>118, 22</value>
   </data>
   <data name="CreateTabRuleOpMenuItem.Text" xml:space="preserve">
     <value>Post(&amp;N)</value>
   </data>
   <data name="CreateIdRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>134, 24</value>
+    <value>118, 22</value>
   </data>
   <data name="CreateIdRuleOpMenuItem.Text" xml:space="preserve">
     <value>&amp;ID</value>
   </data>
+  <data name="CreateSourceRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>118, 22</value>
+  </data>
+  <data name="CreateSourceRuleOpMenuItem.Text" xml:space="preserve">
+    <value>&amp;Source</value>
+  </data>
   <data name="CreateRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
     <value>347, 24</value>
   </data>
     <value>Referred &amp;URL</value>
   </data>
   <data name="IDRuleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>139, 24</value>
+    <value>122, 22</value>
   </data>
   <data name="IDRuleMenuItem.Text" xml:space="preserve">
     <value>ID</value>
     <value>Open Favotter (&amp;P)</value>
   </data>
   <data name="TabMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>139, 24</value>
+    <value>122, 22</value>
   </data>
   <data name="TabMenuItem.Text" xml:space="preserve">
     <value>Post (&amp;N)</value>
   <data name="DeleteStripMenuItem.Text" xml:space="preserve">
     <value>&amp;Delete</value>
   </data>
+  <data name="SourceRuleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>122, 22</value>
+  </data>
+  <data name="SourceRuleMenuItem.Text" xml:space="preserve">
+    <value>&amp;Source</value>
+  </data>
   <data name="ToolStripMenuItem7.Size" type="System.Drawing.Size, System.Drawing">
     <value>258, 24</value>
   </data>
index 8651ac5..43622c4 100644 (file)
     <value>開く(&amp;O)</value>
   </data>
   <data name="CreateTabRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>206, 22</value>
+    <value>210, 22</value>
   </data>
   <data name="CreateTabRuleOpMenuItem.Text" xml:space="preserve">
     <value>タブ振り分けルール作成(&amp;N)</value>
   </data>
   <data name="CreateIdRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>206, 22</value>
+    <value>210, 22</value>
   </data>
   <data name="CreateIdRuleOpMenuItem.Text" xml:space="preserve">
     <value>ID振り分けルール作成(&amp;I)</value>
   </data>
+  <data name="CreateSourceRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>210, 22</value>
+  </data>
+  <data name="CreateSourceRuleOpMenuItem.Text" xml:space="preserve">
+    <value>&amp;Source振り分けルール作成</value>
+  </data>
   <data name="CreateRuleOpMenuItem.Size" type="System.Drawing.Size, System.Drawing">
     <value>313, 22</value>
   </data>
     <value>発言内URLを開く(&amp;U)</value>
   </data>
   <data name="IDRuleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>218, 22</value>
+    <value>222, 22</value>
   </data>
   <data name="IDRuleMenuItem.Text" xml:space="preserve">
     <value>ID振り分けルール作成...</value>
     <value>ふぁぼられを開く(&amp;P)</value>
   </data>
   <data name="TabMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>218, 22</value>
+    <value>222, 22</value>
   </data>
   <data name="TabMenuItem.Text" xml:space="preserve">
     <value>タブ振り分けルール作成(&amp;N)...</value>
   <data name="DeleteStripMenuItem.Text" xml:space="preserve">
     <value>削除(&amp;D)</value>
   </data>
+  <data name="SourceRuleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>222, 22</value>
+  </data>
+  <data name="SourceRuleMenuItem.Text" xml:space="preserve">
+    <value>&amp;Source振り分けルール作成...</value>
+  </data>
   <data name="ToolStripMenuItem7.Size" type="System.Drawing.Size, System.Drawing">
     <value>241, 22</value>
   </data>
   <data name="&gt;&gt;CreateIdRuleOpMenuItem.Type" xml:space="preserve">
     <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
+  <data name="&gt;&gt;CreateSourceRuleOpMenuItem.Name" xml:space="preserve">
+    <value>CreateSourceRuleOpMenuItem</value>
+  </data>
+  <data name="&gt;&gt;CreateSourceRuleOpMenuItem.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
   <data name="&gt;&gt;ListManageMenuItem.Name" xml:space="preserve">
     <value>ListManageMenuItem</value>
   </data>
   <data name="&gt;&gt;ToolStripMenuItem7.Type" xml:space="preserve">
     <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
+  <data name="&gt;&gt;SourceRuleMenuItem.Name" xml:space="preserve">
+    <value>SourceRuleMenuItem</value>
+  </data>
+  <data name="&gt;&gt;SourceRuleMenuItem.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
   <data name="&gt;&gt;RefreshStripMenuItem.Name" xml:space="preserve">
     <value>RefreshStripMenuItem</value>
   </data>