fixed #488: Added recent links menu to tray menu

This commit is contained in:
Jaex 2015-02-02 16:48:56 +02:00
parent 9264f30996
commit 896217f634
10 changed files with 955 additions and 795 deletions

View file

@ -189,7 +189,7 @@ public static string Truncate(this string str, int maxLength)
return str;
}
public static string Truncate(this string str, int maxLength, string endings)
public static string Truncate(this string str, int maxLength, string endings, bool truncateFromRight = true)
{
if (!string.IsNullOrEmpty(str) && str.Length > maxLength)
{
@ -197,7 +197,14 @@ public static string Truncate(this string str, int maxLength, string endings)
if (length > 0)
{
str = str.Substring(0, length) + endings;
if (truncateFromRight)
{
str = str.Left(length) + endings;
}
else
{
str = endings + str.Right(length);
}
}
}

View file

@ -214,6 +214,7 @@ private void InitializeComponent()
this.tsmiTrayTaskSettings = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayHotkeySettings = new System.Windows.Forms.ToolStripMenuItem();
this.tssTray2 = new System.Windows.Forms.ToolStripSeparator();
this.tsmiTrayRecentItems = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiScreenshotsFolder = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayHistory = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiTrayImageHistory = new System.Windows.Forms.ToolStripMenuItem();
@ -1231,6 +1232,7 @@ private void InitializeComponent()
this.tsmiTrayTaskSettings,
this.tsmiTrayHotkeySettings,
this.tssTray2,
this.tsmiTrayRecentItems,
this.tsmiScreenshotsFolder,
this.tsmiTrayHistory,
this.tsmiTrayImageHistory,
@ -1641,6 +1643,12 @@ private void InitializeComponent()
this.tssTray2.Name = "tssTray2";
resources.ApplyResources(this.tssTray2, "tssTray2");
//
// tsmiTrayRecentItems
//
this.tsmiTrayRecentItems.Image = global::ShareX.Properties.Resources.clipboard_list;
this.tsmiTrayRecentItems.Name = "tsmiTrayRecentItems";
resources.ApplyResources(this.tsmiTrayRecentItems, "tsmiTrayRecentItems");
//
// tsmiScreenshotsFolder
//
this.tsmiScreenshotsFolder.Image = global::ShareX.Properties.Resources.folder_open_image;
@ -1742,7 +1750,6 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem tsmiFileUploaders;
private System.Windows.Forms.ToolStripMenuItem tsmiURLShorteners;
private System.Windows.Forms.ToolStripDropDownButton tsddbDestinations;
private System.Windows.Forms.ContextMenuStrip cmsTray;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayExit;
private System.Windows.Forms.ToolStripSeparator tssTray1;
public System.Windows.Forms.NotifyIcon niTray;
@ -1918,5 +1925,7 @@ private void InitializeComponent()
public System.Windows.Forms.Label lblMainFormTip;
private System.Windows.Forms.ToolStripMenuItem tsmiScreenColorPicker;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayScreenColorPicker;
public System.Windows.Forms.ToolStripMenuItem tsmiTrayRecentItems;
private System.Windows.Forms.ContextMenuStrip cmsTray;
}
}

View file

@ -83,7 +83,8 @@ private void InitControls()
((ToolStripDropDownMenu)tsddbWorkflows.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiTrayWorkflows.DropDown).ShowImageMargin =
((ToolStripDropDownMenu)tsmiMonitor.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiTrayMonitor.DropDown).ShowImageMargin =
((ToolStripDropDownMenu)tsmiOpen.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiCopy.DropDown).ShowImageMargin =
((ToolStripDropDownMenu)tsmiShortenSelectedURL.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiShareSelectedURL.DropDown).ShowImageMargin = false;
((ToolStripDropDownMenu)tsmiShortenSelectedURL.DropDown).ShowImageMargin = ((ToolStripDropDownMenu)tsmiShareSelectedURL.DropDown).ShowImageMargin =
((ToolStripDropDownMenu)tsmiTrayRecentItems.DropDown).ShowImageMargin = false;
AddMultiEnumItems<AfterCaptureTasks>(x => Program.DefaultTaskSettings.AfterCaptureJob = Program.DefaultTaskSettings.AfterCaptureJob.Swap(x),
tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks);

View file

@ -180,6 +180,45 @@
<data name="&gt;&gt;lblSplitter.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="chFilename.Text" xml:space="preserve">
<value>Filename</value>
</data>
<data name="chFilename.Width" type="System.Int32, mscorlib">
<value>150</value>
</data>
<data name="chStatus.Text" xml:space="preserve">
<value>Status</value>
</data>
<data name="chProgress.Text" xml:space="preserve">
<value>Progress</value>
</data>
<data name="chProgress.Width" type="System.Int32, mscorlib">
<value>125</value>
</data>
<data name="chSpeed.Text" xml:space="preserve">
<value>Speed</value>
</data>
<data name="chSpeed.Width" type="System.Int32, mscorlib">
<value>75</value>
</data>
<data name="chElapsed.Text" xml:space="preserve">
<value>Elapsed</value>
</data>
<data name="chElapsed.Width" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="chRemaining.Text" xml:space="preserve">
<value>Remaining</value>
</data>
<data name="chRemaining.Width" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="chURL.Text" xml:space="preserve">
<value>URL</value>
</data>
<data name="chURL.Width" type="System.Int32, mscorlib">
<value>145</value>
</data>
<data name="lvUploads.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
@ -276,45 +315,6 @@
<data name="&gt;&gt;scMain.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="chFilename.Text" xml:space="preserve">
<value>Filename</value>
</data>
<data name="chFilename.Width" type="System.Int32, mscorlib">
<value>150</value>
</data>
<data name="chStatus.Text" xml:space="preserve">
<value>Status</value>
</data>
<data name="chProgress.Text" xml:space="preserve">
<value>Progress</value>
</data>
<data name="chProgress.Width" type="System.Int32, mscorlib">
<value>125</value>
</data>
<data name="chSpeed.Text" xml:space="preserve">
<value>Speed</value>
</data>
<data name="chSpeed.Width" type="System.Int32, mscorlib">
<value>75</value>
</data>
<data name="chElapsed.Text" xml:space="preserve">
<value>Elapsed</value>
</data>
<data name="chElapsed.Width" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="chRemaining.Text" xml:space="preserve">
<value>Remaining</value>
</data>
<data name="chRemaining.Width" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="chURL.Text" xml:space="preserve">
<value>URL</value>
</data>
<data name="chURL.Width" type="System.Int32, mscorlib">
<value>145</value>
</data>
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
@ -324,42 +324,6 @@
<data name="tsMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
</data>
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tsMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 6, 6, 6</value>
</data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 407</value>
</data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;tsMain.Name" xml:space="preserve">
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tsMain.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tsddbCapture.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbCapture.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbCapture.Text" xml:space="preserve">
<value>Capture</value>
</data>
<data name="tsmiFullscreen.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
@ -462,17 +426,17 @@
<data name="tsmiAutoCapture.Text" xml:space="preserve">
<value>Auto capture...</value>
</data>
<data name="tsddbUpload.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<data name="tsddbCapture.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbUpload.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<data name="tsddbCapture.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbUpload.Size" type="System.Drawing.Size, System.Drawing">
<data name="tsddbCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbUpload.Text" xml:space="preserve">
<value>Upload</value>
<data name="tsddbCapture.Text" xml:space="preserve">
<value>Capture</value>
</data>
<data name="tsmiUploadFile.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
@ -504,6 +468,18 @@
<data name="tsmiUploadDragDrop.Text" xml:space="preserve">
<value>Drag and drop upload...</value>
</data>
<data name="tsddbUpload.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbUpload.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbUpload.Text" xml:space="preserve">
<value>Upload</value>
</data>
<data name="tsddbWorkflows.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>BottomLeft</value>
</data>
@ -516,18 +492,6 @@
<data name="tsddbWorkflows.Text" xml:space="preserve">
<value>Workflows</value>
</data>
<data name="tsddbTools.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbTools.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbTools.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbTools.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="tsmiColorPicker.Size" type="System.Drawing.Size, System.Drawing">
<value>183, 22</value>
</data>
@ -600,6 +564,18 @@
<data name="tsmiMonitorTest.Text" xml:space="preserve">
<value>Monitor test...</value>
</data>
<data name="tsddbTools.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbTools.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbTools.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbTools.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="tssMain1.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 6</value>
</data>
@ -627,18 +603,6 @@
<data name="tsddbAfterUploadTasks.Text" xml:space="preserve">
<value>After upload tasks</value>
</data>
<data name="tsddbDestinations.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDestinations.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDestinations.Text" xml:space="preserve">
<value>Destinations</value>
</data>
<data name="tsmiImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
@ -678,6 +642,18 @@
<data name="tsmiDestinationSettings.Text" xml:space="preserve">
<value>Destination settings...</value>
</data>
<data name="tsddbDestinations.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDestinations.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDestinations.Text" xml:space="preserve">
<value>Destinations</value>
</data>
<data name="tsbApplicationSettings.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
@ -753,18 +729,6 @@
<data name="tsbImageHistory.Text" xml:space="preserve">
<value>Image history...</value>
</data>
<data name="tsddbDebug.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDebug.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDebug.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDebug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="tsmiShowDebugLog.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
@ -801,6 +765,18 @@
<data name="tsmiTestURLSharing.Text" xml:space="preserve">
<value>Test URL sharing</value>
</data>
<data name="tsddbDebug.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDebug.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDebug.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDebug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="tsmiDonate.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
@ -825,18 +801,33 @@
<data name="tsmiAbout.Text" xml:space="preserve">
<value>About...</value>
</data>
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tsMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 6, 6, 6</value>
</data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 407</value>
</data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;tsMain.Name" xml:space="preserve">
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tsMain.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<metadata name="cmsTaskInfo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>286, 17</value>
</metadata>
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 318</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Name" xml:space="preserve">
<value>cmsTaskInfo</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.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="tsmiShowErrors.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
@ -849,12 +840,6 @@
<data name="tsmiStopUpload.Text" xml:space="preserve">
<value>Stop upload</value>
</data>
<data name="tsmiOpen.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
<data name="tsmiOpen.Text" xml:space="preserve">
<value>Open</value>
</data>
<data name="tsmiOpenURL.Size" type="System.Drawing.Size, System.Drawing">
<value>156, 22</value>
</data>
@ -900,11 +885,11 @@
<data name="tsmiOpenThumbnailFile.Text" xml:space="preserve">
<value>Thumbnail file</value>
</data>
<data name="tsmiCopy.Size" type="System.Drawing.Size, System.Drawing">
<data name="tsmiOpen.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
<data name="tsmiCopy.Text" xml:space="preserve">
<value>Copy</value>
<data name="tsmiOpen.Text" xml:space="preserve">
<value>Open</value>
</data>
<data name="tsmiCopyURL.Size" type="System.Drawing.Size, System.Drawing">
<value>233, 22</value>
@ -1038,6 +1023,12 @@
<data name="tssCopy5.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="tsmiCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
<data name="tsmiCopy.Text" xml:space="preserve">
<value>Copy</value>
</data>
<data name="tsmiUploadSelectedFile.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
@ -1095,12 +1086,6 @@
<data name="tsmiHideMenu.Text" xml:space="preserve">
<value>Hide menu</value>
</data>
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
<data name="tsmiImagePreview.Text" xml:space="preserve">
<value>Image preview</value>
</data>
<data name="tsmiImagePreviewShow.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 22</value>
</data>
@ -1119,18 +1104,165 @@
<data name="tsmiImagePreviewAutomatic.Text" xml:space="preserve">
<value>Automatic</value>
</data>
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 22</value>
</data>
<data name="tsmiImagePreview.Text" xml:space="preserve">
<value>Image preview</value>
</data>
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 318</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Name" xml:space="preserve">
<value>cmsTaskInfo</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<metadata name="niTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>105, 17</value>
</metadata>
<metadata name="cmsTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>190, 17</value>
</metadata>
<data name="tsmiTrayFullscreen.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayFullscreen.Text" xml:space="preserve">
<value>Fullscreen</value>
</data>
<data name="tsmiTrayWindow.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayWindow.Text" xml:space="preserve">
<value>Window</value>
</data>
<data name="tsmiTrayMonitor.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayMonitor.Text" xml:space="preserve">
<value>Monitor</value>
</data>
<data name="tsmiTrayRectangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRectangle.Text" xml:space="preserve">
<value>Rectangle</value>
</data>
<data name="tsmiTrayWindowRectangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayWindowRectangle.Text" xml:space="preserve">
<value>Rectangle (Objects)</value>
</data>
<data name="tsmiTrayRectangleAnnotate.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRectangleAnnotate.Text" xml:space="preserve">
<value>Rectangle (Annotate)</value>
</data>
<data name="tsmiTrayRectangleLight.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRectangleLight.Text" xml:space="preserve">
<value>Rectangle (Light)</value>
</data>
<data name="tsmiTrayRoundedRectangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRoundedRectangle.Text" xml:space="preserve">
<value>Rounded rectangle</value>
</data>
<data name="tsmiTrayEllipse.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayEllipse.Text" xml:space="preserve">
<value>Ellipse</value>
</data>
<data name="tsmiTrayTriangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayTriangle.Text" xml:space="preserve">
<value>Triangle</value>
</data>
<data name="tsmiTrayDiamond.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayDiamond.Text" xml:space="preserve">
<value>Diamond</value>
</data>
<data name="tsmiTrayPolygon.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayPolygon.Text" xml:space="preserve">
<value>Polygon</value>
</data>
<data name="tsmiTrayFreeHand.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayFreeHand.Text" xml:space="preserve">
<value>Freehand</value>
</data>
<data name="tsmiTrayLastRegion.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayLastRegion.Text" xml:space="preserve">
<value>Last region</value>
</data>
<data name="tsmiTrayScreenRecordingFFmpeg.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayScreenRecordingFFmpeg.Text" xml:space="preserve">
<value>Screen recording (FFmpeg)</value>
</data>
<data name="tsmiTrayScreenRecordingGIF.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayScreenRecordingGIF.Text" xml:space="preserve">
<value>Screen recording (GIF)</value>
</data>
<data name="tsmiTrayAutoCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayAutoCapture.Text" xml:space="preserve">
<value>Auto capture...</value>
</data>
<data name="tsmiTrayCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>188, 22</value>
</data>
<data name="tsmiTrayCapture.Text" xml:space="preserve">
<value>Capture</value>
</data>
<data name="tsmiTrayUploadFile.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadFile.Text" xml:space="preserve">
<value>Upload file...</value>
</data>
<data name="tsmiTrayUploadFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadFolder.Text" xml:space="preserve">
<value>Upload folder...</value>
</data>
<data name="tsmiTrayUploadClipboard.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadClipboard.Text" xml:space="preserve">
<value>Upload from clipboard...</value>
</data>
<data name="tsmiTrayUploadURL.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadURL.Text" xml:space="preserve">
<value>Upload from URL...</value>
</data>
<data name="tsmiTrayUploadDragDrop.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadDragDrop.Text" xml:space="preserve">
<value>Drag and drop upload...</value>
</data>
<data name="tsmiTrayUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>188, 22</value>
</data>
@ -1236,6 +1368,45 @@
<data name="tsmiTrayAfterUploadTasks.Text" xml:space="preserve">
<value>After upload</value>
</data>
<data name="tsmiTrayImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayImageUploaders.Text" xml:space="preserve">
<value>Image uploaders</value>
</data>
<data name="tsmiTrayTextUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayTextUploaders.Text" xml:space="preserve">
<value>Text uploaders</value>
</data>
<data name="tsmiTrayFileUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayFileUploaders.Text" xml:space="preserve">
<value>File uploaders</value>
</data>
<data name="tsmiTrayURLShorteners.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayURLShorteners.Text" xml:space="preserve">
<value>URL shorteners</value>
</data>
<data name="tsmiTrayURLSharingServices.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayURLSharingServices.Text" xml:space="preserve">
<value>URL sharing services</value>
</data>
<data name="tssTrayDestinations1.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 6</value>
</data>
<data name="tsmiTrayDestinationSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayDestinationSettings.Text" xml:space="preserve">
<value>Destination settings...</value>
</data>
<data name="tsmiTrayDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>188, 22</value>
</data>
@ -1263,6 +1434,15 @@
<data name="tssTray2.Size" type="System.Drawing.Size, System.Drawing">
<value>185, 6</value>
</data>
<data name="tsmiTrayRecentItems.Size" type="System.Drawing.Size, System.Drawing">
<value>188, 22</value>
</data>
<data name="tsmiTrayRecentItems.Text" xml:space="preserve">
<value>Recent links</value>
</data>
<data name="tsmiTrayRecentItems.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="tsmiScreenshotsFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>188, 22</value>
</data>
@ -1319,177 +1499,6 @@
</data>
<data name="niTray.Text" xml:space="preserve">
<value>ShareX</value>
<comment>@Invariant</comment></data>
<data name="tsmiTrayFullscreen.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayFullscreen.Text" xml:space="preserve">
<value>Fullscreen</value>
</data>
<data name="tsmiTrayWindow.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayWindow.Text" xml:space="preserve">
<value>Window</value>
</data>
<data name="tsmiTrayMonitor.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayMonitor.Text" xml:space="preserve">
<value>Monitor</value>
</data>
<data name="tsmiTrayRectangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRectangle.Text" xml:space="preserve">
<value>Rectangle</value>
</data>
<data name="tsmiTrayWindowRectangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayWindowRectangle.Text" xml:space="preserve">
<value>Rectangle (Objects)</value>
</data>
<data name="tsmiTrayRectangleAnnotate.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRectangleAnnotate.Text" xml:space="preserve">
<value>Rectangle (Annotate)</value>
</data>
<data name="tsmiTrayRectangleLight.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRectangleLight.Text" xml:space="preserve">
<value>Rectangle (Light)</value>
</data>
<data name="tsmiTrayRoundedRectangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayRoundedRectangle.Text" xml:space="preserve">
<value>Rounded rectangle</value>
</data>
<data name="tsmiTrayEllipse.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayEllipse.Text" xml:space="preserve">
<value>Ellipse</value>
</data>
<data name="tsmiTrayTriangle.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayTriangle.Text" xml:space="preserve">
<value>Triangle</value>
</data>
<data name="tsmiTrayDiamond.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayDiamond.Text" xml:space="preserve">
<value>Diamond</value>
</data>
<data name="tsmiTrayPolygon.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayPolygon.Text" xml:space="preserve">
<value>Polygon</value>
</data>
<data name="tsmiTrayFreeHand.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayFreeHand.Text" xml:space="preserve">
<value>Freehand</value>
</data>
<data name="tsmiTrayLastRegion.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayLastRegion.Text" xml:space="preserve">
<value>Last region</value>
</data>
<data name="tsmiTrayScreenRecordingFFmpeg.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayScreenRecordingFFmpeg.Text" xml:space="preserve">
<value>Screen recording (FFmpeg)</value>
</data>
<data name="tsmiTrayScreenRecordingGIF.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayScreenRecordingGIF.Text" xml:space="preserve">
<value>Screen recording (GIF)</value>
</data>
<data name="tsmiTrayAutoCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 22</value>
</data>
<data name="tsmiTrayAutoCapture.Text" xml:space="preserve">
<value>Auto capture...</value>
</data>
<data name="tsmiTrayUploadFile.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadFile.Text" xml:space="preserve">
<value>Upload file...</value>
</data>
<data name="tsmiTrayUploadFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadFolder.Text" xml:space="preserve">
<value>Upload folder...</value>
</data>
<data name="tsmiTrayUploadClipboard.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadClipboard.Text" xml:space="preserve">
<value>Upload from clipboard...</value>
</data>
<data name="tsmiTrayUploadURL.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadURL.Text" xml:space="preserve">
<value>Upload from URL...</value>
</data>
<data name="tsmiTrayUploadDragDrop.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
</data>
<data name="tsmiTrayUploadDragDrop.Text" xml:space="preserve">
<value>Drag and drop upload...</value>
</data>
<data name="tsmiTrayImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayImageUploaders.Text" xml:space="preserve">
<value>Image uploaders</value>
</data>
<data name="tsmiTrayTextUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayTextUploaders.Text" xml:space="preserve">
<value>Text uploaders</value>
</data>
<data name="tsmiTrayFileUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayFileUploaders.Text" xml:space="preserve">
<value>File uploaders</value>
</data>
<data name="tsmiTrayURLShorteners.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayURLShorteners.Text" xml:space="preserve">
<value>URL shorteners</value>
</data>
<data name="tsmiTrayURLSharingServices.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayURLSharingServices.Text" xml:space="preserve">
<value>URL sharing services</value>
</data>
<data name="tssTrayDestinations1.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 6</value>
</data>
<data name="tsmiTrayDestinationSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
<data name="tsmiTrayDestinationSettings.Text" xml:space="preserve">
<value>Destination settings...</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@ -1511,7 +1520,7 @@
</data>
<data name="$this.Text" xml:space="preserve">
<value>ShareX</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;chFilename.Name" xml:space="preserve">
<value>chFilename</value>
</data>
@ -2568,6 +2577,12 @@
<data name="&gt;&gt;tssTray2.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;tsmiTrayRecentItems.Name" xml:space="preserve">
<value>tsmiTrayRecentItems</value>
</data>
<data name="&gt;&gt;tsmiTrayRecentItems.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;tsmiScreenshotsFolder.Name" xml:space="preserve">
<value>tsmiScreenshotsFolder</value>
</data>

View file

@ -425,6 +425,16 @@ public class Resources {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap clipboard_list {
get {
object obj = ResourceManager.GetObject("clipboard-list", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized string similar to Supported variables: {0} and other variables such as {1} etc..
/// </summary>

File diff suppressed because it is too large Load diff

106
ShareX/RecentManager.cs Normal file
View file

@ -0,0 +1,106 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright © 2007-2015 ShareX Developers
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using ShareX.HelpersLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ShareX
{
public class RecentManager
{
public int MaxCount { get; set; }
public Queue<RecentItem> Items { get; set; }
private static readonly object itemsLock = new object();
public RecentManager()
{
MaxCount = 10;
Items = new Queue<RecentItem>();
}
public bool Add(string item)
{
if (!string.IsNullOrEmpty(item))
{
lock (itemsLock)
{
while (Items.Count >= MaxCount)
{
Items.Dequeue();
}
Items.Enqueue(new RecentItem(item));
UpdateRecentMenu();
}
return true;
}
return false;
}
private void UpdateRecentMenu()
{
ToolStripMenuItem tsmi = Program.MainForm.tsmiTrayRecentItems;
if (!tsmi.Visible)
{
tsmi.Visible = true;
}
tsmi.DropDownItems.Clear();
tsmi.DropDownItems.Add("Click on URL to automatically copy it to clipboard.");
tsmi.DropDownItems.Add(new ToolStripSeparator());
foreach (RecentItem recentItem in Items.Reverse())
{
string text = string.Format("[{0:HH:mm:ss}] {1}", recentItem.Time, recentItem.Text.Truncate(50, "...", false));
ToolStripMenuItem tsmiLink = new ToolStripMenuItem(text);
tsmiLink.ToolTipText = recentItem.Text;
string link = recentItem.Text;
tsmiLink.Click += (sender, e) => ClipboardHelpers.CopyText(link);
tsmi.DropDownItems.Add(tsmiLink);
}
}
}
public class RecentItem
{
public string Text { get; set; }
public DateTime Time { get; set; }
public RecentItem(string text)
{
Text = text;
Time = DateTime.Now;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

View file

@ -213,6 +213,7 @@
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="LanguageHelper.cs" />
<Compile Include="RecentManager.cs" />
<Compile Include="TaskHelpers.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@ -748,6 +749,7 @@
<None Include="Resources\hu.png" />
<None Include="Resources\globe.png" />
<None Include="Resources\us.png" />
<None Include="Resources\clipboard-list.png" />
<Content Include="ShareX_Icon.ico" />
<None Include="Resources\globe--pencil.png" />
<None Include="Resources\camcorder--pencil.png" />

View file

@ -47,6 +47,7 @@ public static bool IsBusy
}
private static readonly List<UploadTask> Tasks = new List<UploadTask>();
private static readonly RecentManager RecentManager = new RecentManager();
private static int lastIconStatus = -1;
@ -306,6 +307,8 @@ private static void task_UploadCompleted(UploadTask task)
HistoryManager.AddHistoryItemAsync(Program.HistoryFilePath, info.GetHistoryItem());
}
RecentManager.Add(result);
if (!info.TaskSettings.AdvancedSettings.DisableNotifications && info.Job != TaskJob.ShareURL)
{
if (task.Info.TaskSettings.GeneralSettings.PlaySoundAfterUpload)