mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Support running non image files by clicking file icon thumbnail
This commit is contained in:
parent
d3c0e3a824
commit
4f0e0ae4d1
1 changed files with 69 additions and 51 deletions
|
@ -33,6 +33,46 @@ namespace ShareX
|
|||
{
|
||||
public partial class TaskPanel : UserControl
|
||||
{
|
||||
public new event MouseEventHandler MouseDown
|
||||
{
|
||||
add
|
||||
{
|
||||
base.MouseDown += value;
|
||||
lblFilename.MouseDown += value;
|
||||
pThumbnail.MouseDown += value;
|
||||
pbThumbnail.MouseDown += value;
|
||||
pbProgress.MouseDown += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
base.MouseDown -= value;
|
||||
lblFilename.MouseDown -= value;
|
||||
pThumbnail.MouseDown -= value;
|
||||
pbThumbnail.MouseDown -= value;
|
||||
pbProgress.MouseDown -= value;
|
||||
}
|
||||
}
|
||||
|
||||
public new event MouseEventHandler MouseUp
|
||||
{
|
||||
add
|
||||
{
|
||||
base.MouseUp += value;
|
||||
lblFilename.MouseUp += value;
|
||||
pThumbnail.MouseUp += value;
|
||||
pbThumbnail.MouseUp += value;
|
||||
pbProgress.MouseUp += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
base.MouseUp -= value;
|
||||
lblFilename.MouseUp -= value;
|
||||
pThumbnail.MouseUp -= value;
|
||||
pbThumbnail.MouseUp -= value;
|
||||
pbProgress.MouseUp -= value;
|
||||
}
|
||||
}
|
||||
|
||||
public WorkerTask Task { get; private set; }
|
||||
|
||||
public string Filename
|
||||
|
@ -90,48 +130,10 @@ public bool ProgressVisible
|
|||
|
||||
public Size ThumbnailSize { get; private set; }
|
||||
|
||||
public bool ThumbnailSupportsClick { get; private set; }
|
||||
|
||||
private Rectangle dragBoxFromMouseDown;
|
||||
|
||||
public new event MouseEventHandler MouseDown
|
||||
{
|
||||
add
|
||||
{
|
||||
base.MouseDown += value;
|
||||
lblFilename.MouseDown += value;
|
||||
pThumbnail.MouseDown += value;
|
||||
pbThumbnail.MouseDown += value;
|
||||
pbProgress.MouseDown += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
base.MouseDown -= value;
|
||||
lblFilename.MouseDown -= value;
|
||||
pThumbnail.MouseDown -= value;
|
||||
pbThumbnail.MouseDown -= value;
|
||||
pbProgress.MouseDown -= value;
|
||||
}
|
||||
}
|
||||
|
||||
public new event MouseEventHandler MouseUp
|
||||
{
|
||||
add
|
||||
{
|
||||
base.MouseUp += value;
|
||||
lblFilename.MouseUp += value;
|
||||
pThumbnail.MouseUp += value;
|
||||
pbThumbnail.MouseUp += value;
|
||||
pbProgress.MouseUp += value;
|
||||
}
|
||||
remove
|
||||
{
|
||||
base.MouseUp -= value;
|
||||
lblFilename.MouseUp -= value;
|
||||
pThumbnail.MouseUp -= value;
|
||||
pbThumbnail.MouseUp -= value;
|
||||
pbProgress.MouseUp -= value;
|
||||
}
|
||||
}
|
||||
|
||||
public TaskPanel(WorkerTask task)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
@ -167,14 +169,16 @@ public void UpdateThumbnail()
|
|||
{
|
||||
filePath = Task.Info.FileName;
|
||||
}
|
||||
else
|
||||
else if (File.Exists(filePath))
|
||||
{
|
||||
ThumbnailSupportsClick = true;
|
||||
pbThumbnail.Cursor = pThumbnail.Cursor = Cursors.Hand;
|
||||
|
||||
using (Image img = ImageHelpers.LoadImage(filePath))
|
||||
{
|
||||
if (img != null)
|
||||
{
|
||||
pbThumbnail.Image = ImageHelpers.ResizeImage(img, ThumbnailSize, false);
|
||||
pbThumbnail.Cursor = pThumbnail.Cursor = Cursors.Hand;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -186,7 +190,6 @@ public void UpdateThumbnail()
|
|||
using (Image img = icon.ToBitmap())
|
||||
{
|
||||
pbThumbnail.Image = ImageHelpers.ResizeImage(img, ThumbnailSize, false, true);
|
||||
pbThumbnail.Cursor = pThumbnail.Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -214,6 +217,9 @@ public void ClearThumbnail()
|
|||
{
|
||||
temp.Dispose();
|
||||
}
|
||||
|
||||
ThumbnailSupportsClick = false;
|
||||
pbThumbnail.Cursor = pThumbnail.Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
private void PbThumbnail_MouseDown(object sender, MouseEventArgs e)
|
||||
|
@ -232,17 +238,29 @@ private void PbThumbnail_MouseUp(object sender, MouseEventArgs e)
|
|||
|
||||
private void PbThumbnail_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left && Task.Info != null && !string.IsNullOrEmpty(Task.Info.FilePath) && File.Exists(Task.Info.FilePath))
|
||||
if (ThumbnailSupportsClick && e.Button == MouseButtons.Left && Task.Info != null)
|
||||
{
|
||||
pbThumbnail.Enabled = false;
|
||||
string filePath = Task.Info.FilePath;
|
||||
|
||||
try
|
||||
if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
|
||||
{
|
||||
ImageViewer.ShowImage(Task.Info.FilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
pbThumbnail.Enabled = true;
|
||||
if (Helpers.IsImageFile(filePath))
|
||||
{
|
||||
pbThumbnail.Enabled = false;
|
||||
|
||||
try
|
||||
{
|
||||
ImageViewer.ShowImage(filePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
pbThumbnail.Enabled = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Helpers.OpenFile(filePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue