mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
fixed #1951: After screen recording support loading animated gif from file path in after capture form
This commit is contained in:
parent
6087ea40fb
commit
4fd322b031
3 changed files with 42 additions and 5 deletions
|
@ -27,6 +27,7 @@ You should have received a copy of the GNU General Public License
|
||||||
using ShareX.Properties;
|
using ShareX.Properties;
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -37,7 +38,7 @@ public partial class AfterCaptureForm : Form
|
||||||
public TaskSettings TaskSettings { get; private set; }
|
public TaskSettings TaskSettings { get; private set; }
|
||||||
public string FileName { get; private set; }
|
public string FileName { get; private set; }
|
||||||
|
|
||||||
public AfterCaptureForm(Image img, TaskSettings taskSettings)
|
public AfterCaptureForm(TaskSettings taskSettings)
|
||||||
{
|
{
|
||||||
TaskSettings = taskSettings;
|
TaskSettings = taskSettings;
|
||||||
|
|
||||||
|
@ -55,6 +56,12 @@ public AfterCaptureForm(Image img, TaskSettings taskSettings)
|
||||||
AddAfterCaptureItems(TaskSettings.AfterCaptureJob);
|
AddAfterCaptureItems(TaskSettings.AfterCaptureJob);
|
||||||
AddAfterUploadItems(TaskSettings.AfterUploadJob);
|
AddAfterUploadItems(TaskSettings.AfterUploadJob);
|
||||||
|
|
||||||
|
FileName = TaskHelpers.GetFilename(TaskSettings);
|
||||||
|
txtFileName.Text = FileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AfterCaptureForm(Image img, TaskSettings taskSettings) : this(taskSettings)
|
||||||
|
{
|
||||||
if (img != null)
|
if (img != null)
|
||||||
{
|
{
|
||||||
pbImage.LoadImage(img);
|
pbImage.LoadImage(img);
|
||||||
|
@ -65,6 +72,17 @@ public AfterCaptureForm(Image img, TaskSettings taskSettings)
|
||||||
txtFileName.Text = FileName;
|
txtFileName.Text = FileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AfterCaptureForm(string filePath, TaskSettings taskSettings) : this(taskSettings)
|
||||||
|
{
|
||||||
|
if (Helpers.IsImageFile(filePath))
|
||||||
|
{
|
||||||
|
pbImage.LoadImageFromFileAsync(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
FileName = Path.GetFileNameWithoutExtension(filePath);
|
||||||
|
txtFileName.Text = FileName;
|
||||||
|
}
|
||||||
|
|
||||||
private void AfterCaptureForm_Shown(object sender, EventArgs e)
|
private void AfterCaptureForm_Shown(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.ForceActivate();
|
this.ForceActivate();
|
||||||
|
|
|
@ -305,7 +305,7 @@ private static void StartRecording(ScreenRecordOutput outputType, TaskSettings t
|
||||||
{
|
{
|
||||||
string customFileName;
|
string customFileName;
|
||||||
|
|
||||||
if (!abortRequested && !string.IsNullOrEmpty(path) && File.Exists(path) && TaskHelpers.ShowAfterCaptureForm(taskSettings, out customFileName))
|
if (!abortRequested && !string.IsNullOrEmpty(path) && File.Exists(path) && TaskHelpers.ShowAfterCaptureForm(taskSettings, out customFileName, null, path))
|
||||||
{
|
{
|
||||||
WorkerTask task = WorkerTask.CreateFileJobTask(path, taskSettings, customFileName);
|
WorkerTask task = WorkerTask.CreateFileJobTask(path, taskSettings, customFileName);
|
||||||
TaskManager.Start(task);
|
TaskManager.Start(task);
|
||||||
|
|
|
@ -196,22 +196,41 @@ public static string GetFilename(TaskSettings taskSettings, string extension = n
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool ShowAfterCaptureForm(TaskSettings taskSettings, out string fileName, Image img = null)
|
public static bool ShowAfterCaptureForm(TaskSettings taskSettings, out string fileName, Image img = null, string filePath = null)
|
||||||
{
|
{
|
||||||
fileName = null;
|
fileName = null;
|
||||||
|
|
||||||
if (taskSettings.AfterCaptureJob.HasFlag(AfterCaptureTasks.ShowAfterCaptureWindow))
|
if (taskSettings.AfterCaptureJob.HasFlag(AfterCaptureTasks.ShowAfterCaptureWindow))
|
||||||
{
|
{
|
||||||
using (AfterCaptureForm afterCaptureForm = new AfterCaptureForm(img, taskSettings))
|
AfterCaptureForm afterCaptureForm = null;
|
||||||
|
|
||||||
|
try
|
||||||
{
|
{
|
||||||
|
if (!string.IsNullOrEmpty(filePath))
|
||||||
|
{
|
||||||
|
afterCaptureForm = new AfterCaptureForm(filePath, taskSettings);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
afterCaptureForm = new AfterCaptureForm(img, taskSettings);
|
||||||
|
}
|
||||||
|
|
||||||
if (afterCaptureForm.ShowDialog() == DialogResult.Cancel)
|
if (afterCaptureForm.ShowDialog() == DialogResult.Cancel)
|
||||||
{
|
{
|
||||||
if (img != null) img.Dispose();
|
if (img != null)
|
||||||
|
{
|
||||||
|
img.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
fileName = afterCaptureForm.FileName;
|
fileName = afterCaptureForm.FileName;
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
afterCaptureForm.Dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue