fixed #1951: After screen recording support loading animated gif from file path in after capture form

This commit is contained in:
Jaex 2016-09-30 14:22:51 +03:00
parent 6087ea40fb
commit 4fd322b031
3 changed files with 42 additions and 5 deletions

View file

@ -27,6 +27,7 @@
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();

View file

@ -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);

View file

@ -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;