mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Added thumbnail open/copy buttons to right click menu
This commit is contained in:
parent
d21c038791
commit
a2db479521
7 changed files with 97 additions and 25 deletions
70
ShareX/Forms/MainForm.Designer.cs
generated
70
ShareX/Forms/MainForm.Designer.cs
generated
|
@ -90,12 +90,12 @@ private void InitializeComponent()
|
|||
this.tssMain2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tsddbTools = new System.Windows.Forms.ToolStripDropDownButton();
|
||||
this.tsmiScreenColorPicker = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiRuler = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiHashCheck = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiIndexFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiImageEffects = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiMonitorTest = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiDNSChanger = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiRuler = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsbScreenshotsFolder = new System.Windows.Forms.ToolStripButton();
|
||||
this.tsbHistory = new System.Windows.Forms.ToolStripButton();
|
||||
this.tsbImageHistory = new System.Windows.Forms.ToolStripButton();
|
||||
|
@ -133,6 +133,7 @@ private void InitializeComponent()
|
|||
this.tsmiOpenDeletionURL = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tssOpen1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tsmiOpenFile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiOpenThumbnailFile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiOpenFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiCopy = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiCopyURL = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -202,12 +203,12 @@ private void InitializeComponent()
|
|||
this.tssTray2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tsmiTrayTools = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayScreenColorPicker = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayRuler = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayHashCheck = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayIndexFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayImageEffects = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayMonitorTest = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayDNSChanger = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayRuler = 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();
|
||||
|
@ -217,6 +218,8 @@ private void InitializeComponent()
|
|||
this.tsmiTrayShow = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ssToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiCopyThumbnailFile = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiCopyThumbnailImage = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsMain.SuspendLayout();
|
||||
this.scMain.Panel1.SuspendLayout();
|
||||
this.scMain.Panel2.SuspendLayout();
|
||||
|
@ -571,6 +574,14 @@ private void InitializeComponent()
|
|||
this.tsmiScreenColorPicker.Text = "Screen color picker...";
|
||||
this.tsmiScreenColorPicker.Click += new System.EventHandler(this.tsmiCursorHelper_Click);
|
||||
//
|
||||
// tsmiRuler
|
||||
//
|
||||
this.tsmiRuler.Image = global::ShareX.Properties.Resources.ruler_triangle;
|
||||
this.tsmiRuler.Name = "tsmiRuler";
|
||||
this.tsmiRuler.Size = new System.Drawing.Size(183, 22);
|
||||
this.tsmiRuler.Text = "Ruler...";
|
||||
this.tsmiRuler.Click += new System.EventHandler(this.tsmiRuler_Click);
|
||||
//
|
||||
// tsmiHashCheck
|
||||
//
|
||||
this.tsmiHashCheck.Image = global::ShareX.Properties.Resources.application_task;
|
||||
|
@ -611,14 +622,6 @@ private void InitializeComponent()
|
|||
this.tsmiDNSChanger.Text = "DNS changer...";
|
||||
this.tsmiDNSChanger.Click += new System.EventHandler(this.tsmiDNSChanger_Click);
|
||||
//
|
||||
// tsmiRuler
|
||||
//
|
||||
this.tsmiRuler.Image = global::ShareX.Properties.Resources.ruler_triangle;
|
||||
this.tsmiRuler.Name = "tsmiRuler";
|
||||
this.tsmiRuler.Size = new System.Drawing.Size(183, 22);
|
||||
this.tsmiRuler.Text = "Ruler...";
|
||||
this.tsmiRuler.Click += new System.EventHandler(this.tsmiRuler_Click);
|
||||
//
|
||||
// tsbScreenshotsFolder
|
||||
//
|
||||
this.tsbScreenshotsFolder.Image = global::ShareX.Properties.Resources.folder_open_image;
|
||||
|
@ -895,7 +898,7 @@ private void InitializeComponent()
|
|||
this.tsmiHidePreview});
|
||||
this.cmsUploadInfo.Name = "cmsHistory";
|
||||
this.cmsUploadInfo.ShowImageMargin = false;
|
||||
this.cmsUploadInfo.Size = new System.Drawing.Size(155, 258);
|
||||
this.cmsUploadInfo.Size = new System.Drawing.Size(155, 280);
|
||||
//
|
||||
// tsmiShowErrors
|
||||
//
|
||||
|
@ -920,7 +923,8 @@ private void InitializeComponent()
|
|||
this.tsmiOpenDeletionURL,
|
||||
this.tssOpen1,
|
||||
this.tsmiOpenFile,
|
||||
this.tsmiOpenFolder});
|
||||
this.tsmiOpenFolder,
|
||||
this.tsmiOpenThumbnailFile});
|
||||
this.tsmiOpen.Name = "tsmiOpen";
|
||||
this.tsmiOpen.Size = new System.Drawing.Size(154, 22);
|
||||
this.tsmiOpen.Text = "Open";
|
||||
|
@ -965,6 +969,13 @@ private void InitializeComponent()
|
|||
this.tsmiOpenFile.Text = "File";
|
||||
this.tsmiOpenFile.Click += new System.EventHandler(this.tsmiOpenFile_Click);
|
||||
//
|
||||
// tsmiOpenThumbnailFile
|
||||
//
|
||||
this.tsmiOpenThumbnailFile.Name = "tsmiOpenThumbnailFile";
|
||||
this.tsmiOpenThumbnailFile.Size = new System.Drawing.Size(156, 22);
|
||||
this.tsmiOpenThumbnailFile.Text = "Thumbnail file";
|
||||
this.tsmiOpenThumbnailFile.Click += new System.EventHandler(this.tsmiOpenThumbnailFile_Click);
|
||||
//
|
||||
// tsmiOpenFolder
|
||||
//
|
||||
this.tsmiOpenFolder.Name = "tsmiOpenFolder";
|
||||
|
@ -983,6 +994,8 @@ private void InitializeComponent()
|
|||
this.tsmiCopyFile,
|
||||
this.tsmiCopyImage,
|
||||
this.tsmiCopyText,
|
||||
this.tsmiCopyThumbnailFile,
|
||||
this.tsmiCopyThumbnailImage,
|
||||
this.tssCopy2,
|
||||
this.tsmiCopyHTMLLink,
|
||||
this.tsmiCopyHTMLImage,
|
||||
|
@ -1526,6 +1539,14 @@ private void InitializeComponent()
|
|||
this.tsmiTrayScreenColorPicker.Text = "Screen color picker...";
|
||||
this.tsmiTrayScreenColorPicker.Click += new System.EventHandler(this.tsmiCursorHelper_Click);
|
||||
//
|
||||
// tsmiTrayRuler
|
||||
//
|
||||
this.tsmiTrayRuler.Image = global::ShareX.Properties.Resources.ruler_triangle;
|
||||
this.tsmiTrayRuler.Name = "tsmiTrayRuler";
|
||||
this.tsmiTrayRuler.Size = new System.Drawing.Size(183, 22);
|
||||
this.tsmiTrayRuler.Text = "Ruler...";
|
||||
this.tsmiTrayRuler.Click += new System.EventHandler(this.tsmiRuler_Click);
|
||||
//
|
||||
// tsmiTrayHashCheck
|
||||
//
|
||||
this.tsmiTrayHashCheck.Image = global::ShareX.Properties.Resources.application_task;
|
||||
|
@ -1566,14 +1587,6 @@ private void InitializeComponent()
|
|||
this.tsmiTrayDNSChanger.Text = "DNS changer...";
|
||||
this.tsmiTrayDNSChanger.Click += new System.EventHandler(this.tsmiDNSChanger_Click);
|
||||
//
|
||||
// tsmiTrayRuler
|
||||
//
|
||||
this.tsmiTrayRuler.Image = global::ShareX.Properties.Resources.ruler_triangle;
|
||||
this.tsmiTrayRuler.Name = "tsmiTrayRuler";
|
||||
this.tsmiTrayRuler.Size = new System.Drawing.Size(183, 22);
|
||||
this.tsmiTrayRuler.Text = "Ruler...";
|
||||
this.tsmiTrayRuler.Click += new System.EventHandler(this.tsmiRuler_Click);
|
||||
//
|
||||
// tsmiScreenshotsFolder
|
||||
//
|
||||
this.tsmiScreenshotsFolder.Image = global::ShareX.Properties.Resources.folder_open_image;
|
||||
|
@ -1641,6 +1654,20 @@ private void InitializeComponent()
|
|||
this.ssToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.ssToolStripMenuItem.Text = "ss";
|
||||
//
|
||||
// tsmiCopyThumbnailFile
|
||||
//
|
||||
this.tsmiCopyThumbnailFile.Name = "tsmiCopyThumbnailFile";
|
||||
this.tsmiCopyThumbnailFile.Size = new System.Drawing.Size(233, 22);
|
||||
this.tsmiCopyThumbnailFile.Text = "Thumbnail file";
|
||||
this.tsmiCopyThumbnailFile.Click += new System.EventHandler(this.tsmiCopyThumbnailFile_Click);
|
||||
//
|
||||
// tsmiCopyThumbnailImage
|
||||
//
|
||||
this.tsmiCopyThumbnailImage.Name = "tsmiCopyThumbnailImage";
|
||||
this.tsmiCopyThumbnailImage.Size = new System.Drawing.Size(233, 22);
|
||||
this.tsmiCopyThumbnailImage.Text = "Thumbnail image";
|
||||
this.tsmiCopyThumbnailImage.Click += new System.EventHandler(this.tsmiCopyThumbnailImage_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
|
@ -1835,5 +1862,8 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.ToolStripMenuItem tsmiTrayDragDropUpload;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiRuler;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiTrayRuler;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiOpenThumbnailFile;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiCopyThumbnailFile;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiCopyThumbnailImage;
|
||||
}
|
||||
}
|
|
@ -252,6 +252,7 @@ private void UpdateControls()
|
|||
|
||||
tsmiOpenFile.Enabled = uim.SelectedItem.IsFileExist;
|
||||
tsmiOpenFolder.Enabled = uim.SelectedItem.IsFileExist;
|
||||
tsmiOpenThumbnailFile.Enabled = uim.SelectedItem.IsThumbnailFileExist;
|
||||
|
||||
// Copy
|
||||
tsmiCopy.Visible = true;
|
||||
|
@ -264,6 +265,8 @@ private void UpdateControls()
|
|||
tsmiCopyFile.Enabled = uim.SelectedItem.IsFileExist;
|
||||
tsmiCopyImage.Enabled = uim.SelectedItem.IsImageFile;
|
||||
tsmiCopyText.Enabled = uim.SelectedItem.IsTextFile;
|
||||
tsmiCopyThumbnailFile.Enabled = uim.SelectedItem.IsThumbnailFileExist;
|
||||
tsmiCopyThumbnailImage.Enabled = uim.SelectedItem.IsThumbnailFileExist;
|
||||
|
||||
tsmiCopyHTMLLink.Enabled = uim.SelectedItems.Any(x => x.IsURLExist);
|
||||
tsmiCopyHTMLImage.Enabled = uim.SelectedItems.Any(x => x.IsImageURL);
|
||||
|
@ -1043,6 +1046,11 @@ private void tsmiOpenFile_Click(object sender, EventArgs e)
|
|||
uim.OpenFile();
|
||||
}
|
||||
|
||||
private void tsmiOpenThumbnailFile_Click(object sender, EventArgs e)
|
||||
{
|
||||
uim.OpenThumbnailFile();
|
||||
}
|
||||
|
||||
private void tsmiOpenFolder_Click(object sender, EventArgs e)
|
||||
{
|
||||
uim.OpenFolder();
|
||||
|
@ -1083,6 +1091,16 @@ private void tsmiCopyText_Click(object sender, EventArgs e)
|
|||
uim.CopyText();
|
||||
}
|
||||
|
||||
private void tsmiCopyThumbnailFile_Click(object sender, EventArgs e)
|
||||
{
|
||||
uim.CopyThumbnailFile();
|
||||
}
|
||||
|
||||
private void tsmiCopyThumbnailImage_Click(object sender, EventArgs e)
|
||||
{
|
||||
uim.CopyThumbnailImage();
|
||||
}
|
||||
|
||||
private void tsmiCopyHTMLLink_Click(object sender, EventArgs e)
|
||||
{
|
||||
uim.CopyHTMLLink();
|
||||
|
|
|
@ -70,7 +70,7 @@ public static ImageData PrepareImage(Image img, TaskSettings taskSettings)
|
|||
return imageData;
|
||||
}
|
||||
|
||||
public static bool CreateThumbnail(Image img, string filename, TaskSettings taskSettings)
|
||||
public static string CreateThumbnail(Image img, string filename, TaskSettings taskSettings)
|
||||
{
|
||||
if ((taskSettings.ImageSettings.ThumbnailWidth > 0 || taskSettings.ImageSettings.ThumbnailHeight > 0) && (!taskSettings.ImageSettings.ThumbnailCheckSize ||
|
||||
(img.Width > taskSettings.ImageSettings.ThumbnailWidth && img.Height > taskSettings.ImageSettings.ThumbnailHeight)))
|
||||
|
@ -92,8 +92,7 @@ public static bool CreateThumbnail(Image img, string filename, TaskSettings task
|
|||
}.Apply(thumbImage);
|
||||
thumbImage = ImageHelpers.FillBackground(thumbImage, Color.White);
|
||||
thumbImage.SaveJPG(thumbnailFilePath, 90);
|
||||
DebugHelper.WriteLine("SaveThumbnailImageToFile: " + thumbnailFilePath);
|
||||
return true;
|
||||
return thumbnailFilePath;
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -105,7 +104,7 @@ public static bool CreateThumbnail(Image img, string filename, TaskSettings task
|
|||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
public static MemoryStream SaveImage(Image img, EImageFormat imageFormat, TaskSettings taskSettings)
|
||||
|
|
|
@ -65,6 +65,7 @@ public string FilePath
|
|||
}
|
||||
|
||||
public string FileName { get; set; }
|
||||
public string ThumbnailFilePath { get; set; }
|
||||
public EDataType DataType { get; set; }
|
||||
|
||||
public EDataType UploadDestination
|
||||
|
|
|
@ -119,6 +119,11 @@ public void OpenFile()
|
|||
if (IsItemSelected && SelectedItem.IsFileExist) Helpers.LoadBrowserAsync(SelectedItem.Info.FilePath);
|
||||
}
|
||||
|
||||
public void OpenThumbnailFile()
|
||||
{
|
||||
if (IsItemSelected && SelectedItem.IsThumbnailFileExist) Helpers.LoadBrowserAsync(SelectedItem.Info.ThumbnailFilePath);
|
||||
}
|
||||
|
||||
public void OpenFolder()
|
||||
{
|
||||
if (IsItemSelected && SelectedItem.IsFileExist) Helpers.OpenFolderWithFile(SelectedItem.Info.FilePath);
|
||||
|
@ -182,6 +187,16 @@ public void CopyText()
|
|||
if (IsItemSelected && SelectedItem.IsTextFile) ClipboardHelpers.CopyTextFromFile(SelectedItem.Info.FilePath);
|
||||
}
|
||||
|
||||
public void CopyThumbnailFile()
|
||||
{
|
||||
if (IsItemSelected && SelectedItem.IsThumbnailFileExist) ClipboardHelpers.CopyFile(SelectedItem.Info.ThumbnailFilePath);
|
||||
}
|
||||
|
||||
public void CopyThumbnailImage()
|
||||
{
|
||||
if (IsItemSelected && SelectedItem.IsThumbnailFileExist) ClipboardHelpers.CopyImageFromFile(SelectedItem.Info.ThumbnailFilePath);
|
||||
}
|
||||
|
||||
public void CopyHTMLLink()
|
||||
{
|
||||
if (IsItemSelected) CopyTexts(SelectedItems.Where(x => x.IsURLExist).Select(x => parser.Parse(x.Info, UploadInfoParser.HTMLLink)));
|
||||
|
|
|
@ -40,6 +40,8 @@ public class UploadInfoStatus
|
|||
public bool IsTextURL { get; private set; }
|
||||
public bool IsFilePathValid { get; private set; }
|
||||
public bool IsFileExist { get; private set; }
|
||||
public bool IsThumbnailFilePathValid { get; private set; }
|
||||
public bool IsThumbnailFileExist { get; private set; }
|
||||
public bool IsImageFile { get; private set; }
|
||||
public bool IsTextFile { get; private set; }
|
||||
|
||||
|
@ -63,6 +65,8 @@ public void Update()
|
|||
|
||||
IsFilePathValid = !string.IsNullOrEmpty(Info.FilePath) && Path.HasExtension(Info.FilePath);
|
||||
IsFileExist = IsFilePathValid && File.Exists(Info.FilePath);
|
||||
IsThumbnailFilePathValid = !string.IsNullOrEmpty(Info.ThumbnailFilePath) && Path.HasExtension(Info.ThumbnailFilePath);
|
||||
IsThumbnailFileExist = IsThumbnailFilePathValid && File.Exists(Info.ThumbnailFilePath);
|
||||
IsImageFile = IsFileExist && Helpers.IsImageFile(Info.FilePath);
|
||||
IsTextFile = IsFileExist && Helpers.IsTextFile(Info.FilePath);
|
||||
}
|
||||
|
|
|
@ -452,7 +452,12 @@ private void DoAfterCaptureJobs()
|
|||
|
||||
if (Info.TaskSettings.AfterCaptureJob.HasFlag(AfterCaptureTasks.SaveThumbnailImageToFile))
|
||||
{
|
||||
TaskHelpers.CreateThumbnail(tempImage, Info.FileName, Info.TaskSettings);
|
||||
Info.ThumbnailFilePath = TaskHelpers.CreateThumbnail(tempImage, Info.FileName, Info.TaskSettings);
|
||||
|
||||
if (!string.IsNullOrEmpty(Info.ThumbnailFilePath))
|
||||
{
|
||||
DebugHelper.WriteLine("SaveThumbnailImageToFile: " + Info.ThumbnailFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
if (Info.TaskSettings.AfterCaptureJob.HasFlag(AfterCaptureTasks.CopyFileToClipboard) && !string.IsNullOrEmpty(Info.FilePath) &&
|
||||
|
|
Loading…
Reference in a new issue