Merge remote-tracking branch 'refs/remotes/ShareX/master'

This commit is contained in:
lithium_ 2016-05-30 05:59:09 -07:00
commit 2910628926
4 changed files with 53 additions and 7 deletions

View file

@ -1758,7 +1758,7 @@ private void InitHotkeys()
private void HandleHotkeys(HotkeySettings hotkeySetting)
{
DebugHelper.WriteLine("Hotkey triggered: " + hotkeySetting);
DebugHelper.WriteLine("Hotkey triggered. " + hotkeySetting);
if (hotkeySetting.TaskSettings.Job != HotkeyType.None)
{

View file

@ -138,6 +138,8 @@ public TimeSpan TaskDuration
}
}
public Stopwatch UploadDuration { get; set; }
public UploadResult Result { get; set; }
public TaskInfo(TaskSettings taskSettings)

View file

@ -65,6 +65,7 @@ public static void Start(WorkerTask task)
task.StatusChanged += task_StatusChanged;
task.UploadStarted += task_UploadStarted;
task.UploadProgressChanged += task_UploadProgressChanged;
task.UploadCompleted += task_UploadCompleted;
task.TaskCompleted += task_TaskCompleted;
task.UploadersConfigWindowRequested += Task_UploadersConfigWindowRequested;
}
@ -272,6 +273,28 @@ private static void task_UploadProgressChanged(WorkerTask task)
}
}
private static void task_UploadCompleted(WorkerTask task)
{
TaskInfo info = task.Info;
if (info != null && info.Result != null && !info.Result.IsError)
{
string url = info.Result.ToString();
if (!string.IsNullOrEmpty(url))
{
string text = $"Upload completed. URL: {url}";
if (info.UploadDuration != null)
{
text += $", Duration: {info.UploadDuration.ElapsedMilliseconds} ms";
}
DebugHelper.WriteLine(text);
}
}
}
private static void task_TaskCompleted(WorkerTask task)
{
try
@ -318,7 +341,7 @@ private static void task_TaskCompleted(WorkerTask task)
}
else
{
DebugHelper.WriteLine($"Task completed. Filename: {info.FileName}, URL: {info.Result}, Duration: {info.TaskDuration.TotalMilliseconds:d} ms");
DebugHelper.WriteLine($"Task completed. Filename: {info.FileName}, Duration: {(long)info.TaskDuration.TotalMilliseconds} ms");
string result = info.Result.ToString();

View file

@ -28,6 +28,7 @@
using ShareX.UploadersLib;
using ShareX.UploadersLib.OtherServices;
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
@ -46,6 +47,7 @@ public class WorkerTask : IDisposable
public event TaskEventHandler StatusChanged;
public event TaskEventHandler UploadStarted;
public event TaskEventHandler UploadProgressChanged;
public event TaskEventHandler UploadCompleted;
public event TaskEventHandler TaskCompleted;
public event UploaderServiceEventHandler UploadersConfigWindowRequested;
@ -253,6 +255,8 @@ public void Start()
{
if (Status == TaskStatus.InQueue && !StopRequested)
{
Info.TaskStartTime = DateTime.UtcNow;
threadWorker = new ThreadWorker();
Prepare();
threadWorker.DoWork += ThreadDoWork;
@ -302,8 +306,6 @@ public void Stop()
private void ThreadDoWork()
{
Info.TaskStartTime = DateTime.UtcNow;
CreateTaskReferenceHelper();
try
@ -343,8 +345,6 @@ private void ThreadDoWork()
DoAfterUploadJobs();
}
}
Info.TaskEndTime = DateTime.UtcNow;
}
private void CreateTaskReferenceHelper()
@ -425,6 +425,11 @@ private void DoUploadJob()
isError = DoUpload(retry);
}
}
if (!isError)
{
OnUploadCompleted();
}
}
else
{
@ -851,7 +856,13 @@ public UploadResult UploadData(IGenericUploaderService service, Stream stream, s
uploader.EarlyURLCopyRequested += url => ClipboardHelpers.CopyText(url);
}
return uploader.Upload(stream, fileName);
Info.UploadDuration = Stopwatch.StartNew();
UploadResult result = uploader.Upload(stream, fileName);
Info.UploadDuration.Stop();
return result;
}
return null;
@ -1023,6 +1034,14 @@ private void OnUploadStarted()
}
}
private void OnUploadCompleted()
{
if (UploadCompleted != null)
{
threadWorker.InvokeAsync(() => UploadCompleted(this));
}
}
private void OnUploadProgressChanged()
{
if (UploadProgressChanged != null)
@ -1033,6 +1052,8 @@ private void OnUploadProgressChanged()
private void OnTaskCompleted()
{
Info.TaskEndTime = DateTime.UtcNow;
Status = TaskStatus.Completed;
if (StopRequested)