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 System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
|
@ -37,7 +38,7 @@ public partial class AfterCaptureForm : Form
|
|||
public TaskSettings TaskSettings { get; private set; }
|
||||
public string FileName { get; private set; }
|
||||
|
||||
public AfterCaptureForm(Image img, TaskSettings taskSettings)
|
||||
public AfterCaptureForm(TaskSettings taskSettings)
|
||||
{
|
||||
TaskSettings = taskSettings;
|
||||
|
||||
|
@ -55,6 +56,12 @@ public AfterCaptureForm(Image img, TaskSettings taskSettings)
|
|||
AddAfterCaptureItems(TaskSettings.AfterCaptureJob);
|
||||
AddAfterUploadItems(TaskSettings.AfterUploadJob);
|
||||
|
||||
FileName = TaskHelpers.GetFilename(TaskSettings);
|
||||
txtFileName.Text = FileName;
|
||||
}
|
||||
|
||||
public AfterCaptureForm(Image img, TaskSettings taskSettings) : this(taskSettings)
|
||||
{
|
||||
if (img != null)
|
||||
{
|
||||
pbImage.LoadImage(img);
|
||||
|
@ -65,6 +72,17 @@ public AfterCaptureForm(Image img, TaskSettings taskSettings)
|
|||
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)
|
||||
{
|
||||
this.ForceActivate();
|
||||
|
|
|
@ -305,7 +305,7 @@ private static void StartRecording(ScreenRecordOutput outputType, TaskSettings t
|
|||
{
|
||||
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);
|
||||
TaskManager.Start(task);
|
||||
|
|
|
@ -196,22 +196,41 @@ public static string GetFilename(TaskSettings taskSettings, string extension = n
|
|||
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;
|
||||
|
||||
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 (img != null) img.Dispose();
|
||||
if (img != null)
|
||||
{
|
||||
img.Dispose();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
fileName = afterCaptureForm.FileName;
|
||||
}
|
||||
finally
|
||||
{
|
||||
afterCaptureForm.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue