OSDN Git Service

TweetThumbnailのコンテキストメニューに「開く」「URLをコピー」を追加
authorKimura Youichi <kim.upsilon@bucyou.net>
Fri, 13 Oct 2017 21:50:01 +0000 (06:50 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Fri, 20 Oct 2017 17:44:04 +0000 (02:44 +0900)
OpenTween/Resources/ChangeLog.txt
OpenTween/TweetThumbnail.Designer.cs
OpenTween/TweetThumbnail.cs
OpenTween/TweetThumbnail.en.resx
OpenTween/TweetThumbnail.resx

index 09fd60b..3b4b46c 100644 (file)
@@ -1,6 +1,7 @@
 更新履歴
 
 ==== Ver 1.4.0-dev(2017/xx/xx)
+ * NEW: サムネイル画像のコンテキストメニューに「開く」「URLをコピー」を追加
  * CHG: 自分宛のメンションを含むツイートがRTされた場合に、リプライとして扱わずReplyタブにも表示しないように変更 (thx @7mencho!)
  * FIX: 起動時に復元したウィンドウ位置が画面領域外であった場合に、強制的にウィンドウを移動する動作が機能しない不具合を修正
  * FIX: TweetDeckから投稿されたツイートをFav追加・削除した場合にエラーが発生する問題を回避 (thx @Lolitapple!)
index 2cb47cd..6e49c47 100644 (file)
@@ -34,6 +34,9 @@
             this.toolTip = new System.Windows.Forms.ToolTip(this.components);
             this.panelPictureBox = new System.Windows.Forms.Panel();
             this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+            this.openMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.copyUrlMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
             this.searchImageGoogleMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.searchImageSauceNaoMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.contextMenuStrip.SuspendLayout();
             // 
             resources.ApplyResources(this.contextMenuStrip, "contextMenuStrip");
             this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.openMenuItem,
+            this.copyUrlMenuItem,
+            this.toolStripSeparator1,
             this.searchImageGoogleMenuItem,
             this.searchImageSauceNaoMenuItem});
             this.contextMenuStrip.Name = "contextMenuStrip";
             this.toolTip.SetToolTip(this.contextMenuStrip, resources.GetString("contextMenuStrip.ToolTip"));
             this.contextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip_Opening);
             // 
+            // openMenuItem
+            // 
+            resources.ApplyResources(this.openMenuItem, "openMenuItem");
+            this.openMenuItem.Name = "openMenuItem";
+            this.openMenuItem.Click += new System.EventHandler(this.openMenuItem_Click);
+            // 
+            // copyUrlMenuItem
+            // 
+            resources.ApplyResources(this.copyUrlMenuItem, "copyUrlMenuItem");
+            this.copyUrlMenuItem.Name = "copyUrlMenuItem";
+            this.copyUrlMenuItem.Click += new System.EventHandler(this.copyUrlMenuItem_Click);
+            // 
+            // toolStripSeparator1
+            // 
+            resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
+            this.toolStripSeparator1.Name = "toolStripSeparator1";
+            // 
             // searchImageGoogleMenuItem
             // 
             resources.ApplyResources(this.searchImageGoogleMenuItem, "searchImageGoogleMenuItem");
         private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
         private System.Windows.Forms.ToolStripMenuItem searchImageGoogleMenuItem;
         private System.Windows.Forms.ToolStripMenuItem searchImageSauceNaoMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem openMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem copyUrlMenuItem;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
     }
 }
index 3c62a8e..86494db 100644 (file)
@@ -35,6 +35,7 @@ using System.Threading.Tasks;
 using OpenTween.Thumbnail;
 using System.Threading;
 using OpenTween.Models;
+using System.Runtime.InteropServices;
 
 namespace OpenTween
 {
@@ -191,6 +192,9 @@ namespace OpenTween
             };
         }
 
+        public void OpenImage(ThumbnailInfo thumb)
+            => this.ThumbnailDoubleClick?.Invoke(this, new ThumbnailDoubleClickEventArgs(thumb));
+
         public void ScrollUp()
         {
             var newval = this.scrollBar.Value - this.scrollBar.SmallChange;
@@ -243,7 +247,7 @@ namespace OpenTween
 
             if (thumb == null) return;
 
-            this.ThumbnailDoubleClick?.Invoke(this, new ThumbnailDoubleClickEventArgs(thumb));
+            this.OpenImage(thumb);
         }
 
         private void contextMenuStrip_Opening(object sender, CancelEventArgs e)
@@ -281,6 +285,21 @@ namespace OpenTween
 
             this.ThumbnailImageSearchClick?.Invoke(this, new ThumbnailImageSearchEventArgs(searchUri));
         }
+
+        private void openMenuItem_Click(object sender, EventArgs e)
+            => this.OpenImage(this.Thumbnail);
+
+        private void copyUrlMenuItem_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                Clipboard.SetText(this.Thumbnail.FullSizeImageUrl);
+            }
+            catch (ExternalException ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
     }
 
     public class ThumbnailDoubleClickEventArgs : EventArgs
index ee9003d..fb5c2f2 100644 (file)
     <value />
   </data>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="openMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>254, 22</value>
+  </data>
+  <data name="openMenuItem.Text" xml:space="preserve">
+    <value>&amp;Open</value>
+  </data>
+  <data name="copyUrlMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>254, 22</value>
+  </data>
+  <data name="copyUrlMenuItem.Text" xml:space="preserve">
+    <value>&amp;Copy URL</value>
+  </data>
+  <data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>251, 6</value>
+  </data>
   <data name="searchImageGoogleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
     <value>254, 22</value>
   </data>
     <value>Search similar images (SauceNAO)</value>
   </data>
   <data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
-    <value>255, 48</value>
+    <value>255, 98</value>
   </data>
   <data name="contextMenuStrip.ToolTip" xml:space="preserve">
     <value />
index 81fd040..de80de3 100644 (file)
   <data name="&gt;&gt;panelPictureBox.Name" xml:space="preserve">
     <value>panelPictureBox</value>
   </data>
+  <data name="&gt;&gt;searchImageGoogleMenuItem.Name" xml:space="preserve">
+    <value>searchImageGoogleMenuItem</value>
+  </data>
   <data name="&gt;&gt;panelPictureBox.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
+  <data name="searchImageGoogleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>223, 22</value>
+  </data>
+  <data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>220, 6</value>
+  </data>
   <data name="searchImageSauceNaoMenuItem.Text" xml:space="preserve">
     <value>類似画像を検索 (SauceNAO)</value>
   </data>
-  <data name="searchImageGoogleMenuItem.Text" xml:space="preserve">
-    <value>類似画像を検索 (Google)</value>
+  <data name="&gt;&gt;toolStripSeparator1.Name" xml:space="preserve">
+    <value>toolStripSeparator1</value>
   </data>
-  <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="scrollBar.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
+  <data name="copyUrlMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>223, 22</value>
   </data>
   <data name="&gt;&gt;$this.Name" xml:space="preserve">
     <value>TweetThumbnail</value>
   <data name="&gt;&gt;panelPictureBox.Type" xml:space="preserve">
     <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
+  <data name="searchImageGoogleMenuItem.Text" xml:space="preserve">
+    <value>類似画像を検索 (Google)</value>
+  </data>
   <data name="contextMenuStrip.ToolTip" xml:space="preserve">
     <value />
   </data>
   <data name="&gt;&gt;contextMenuStrip.Name" xml:space="preserve">
     <value>contextMenuStrip</value>
   </data>
+  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="scrollBar.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
   <data name="&gt;&gt;contextMenuStrip.Type" xml:space="preserve">
     <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="panelPictureBox.Size" type="System.Drawing.Size, System.Drawing">
     <value>143, 150</value>
   </data>
+  <data name="&gt;&gt;openMenuItem.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;searchImageSauceNaoMenuItem.Name" xml:space="preserve">
     <value>searchImageSauceNaoMenuItem</value>
   </data>
   <data name="panelPictureBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Fill</value>
   </data>
+  <data name="&gt;&gt;openMenuItem.Name" xml:space="preserve">
+    <value>openMenuItem</value>
+  </data>
   <data name="&gt;&gt;searchImageSauceNaoMenuItem.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;scrollBar.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
   <data name="$this.ToolTip" xml:space="preserve">
     <value />
   </data>
   <data name="panelPictureBox.Location" type="System.Drawing.Point, System.Drawing">
     <value>0, 0</value>
   </data>
+  <data name="openMenuItem.Text" xml:space="preserve">
+    <value>開く(&amp;O)</value>
+  </data>
+  <data name="&gt;&gt;toolStripSeparator1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;copyUrlMenuItem.Name" xml:space="preserve">
+    <value>copyUrlMenuItem</value>
+  </data>
+  <data name="&gt;&gt;copyUrlMenuItem.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="copyUrlMenuItem.Text" xml:space="preserve">
+    <value>URLをコピー(&amp;C)</value>
+  </data>
   <data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
-    <value>224, 48</value>
+    <value>224, 98</value>
   </data>
   <data name="scrollBar.Location" type="System.Drawing.Point, System.Drawing">
     <value>143, 0</value>
   </data>
-  <data name="searchImageGoogleMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>223, 22</value>
-  </data>
   <data name="scrollBar.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Right</value>
   </data>
-  <data name="&gt;&gt;searchImageGoogleMenuItem.Name" xml:space="preserve">
-    <value>searchImageGoogleMenuItem</value>
+  <data name="openMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>223, 22</value>
   </data>
   <data name="&gt;&gt;toolTip.Type" xml:space="preserve">
     <value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>