Added EarlyCopyURL support

This commit is contained in:
Jaex 2015-12-09 20:32:26 +02:00
parent 1d7b08283e
commit 3d1cc280c5
4 changed files with 34 additions and 5 deletions

View file

@ -370,9 +370,20 @@ public DropboxContentInfo Move(string from_path, string to_path)
public override UploadResult Upload(Stream stream, string fileName)
{
if (!AutoCreateShareableLink)
{
CheckEarlyURLCopy(UploadPath, fileName);
}
return UploadFile(stream, UploadPath, fileName, AutoCreateShareableLink, ShareURLType);
}
private void CheckEarlyURLCopy(string path, string fileName)
{
string url = GetPublicURL(URLHelpers.CombineURL(path, fileName));
OnEarlyURLCopyRequested(url);
}
public string GetPublicURL(string path)
{
return GetPublicURL(AccountInfo.Uid, path);

View file

@ -44,6 +44,8 @@ public class Uploader
public delegate void ProgressEventHandler(ProgressManager progress);
public event ProgressEventHandler ProgressChanged;
public event Action<string> EarlyURLCopyRequested;
public List<string> Errors { get; private set; }
public bool IsUploading { get; protected set; }
public int BufferSize { get; set; }
@ -83,6 +85,14 @@ protected void OnProgressChanged(ProgressManager progress)
}
}
protected void OnEarlyURLCopyRequested(string url)
{
if (EarlyURLCopyRequested != null && !string.IsNullOrEmpty(url))
{
EarlyURLCopyRequested(url);
}
}
public string ToErrorString()
{
if (IsError)

View file

@ -421,6 +421,9 @@ public class TaskSettingsAdvanced
Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
public List<string> ImageExtensions { get; set; }
[Category("Upload"), DefaultValue(false), Description("Copy URL before start upload. Only works for FTP and Dropbox public URLs.")]
public bool EarlyCopyURL { get; set; }
[Category("Upload"), Description("Files with these file extensions will be uploaded using text uploader."),
Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
public List<string> TextExtensions { get; set; }

View file

@ -365,15 +365,15 @@ private void DoUploadJob()
TaskbarManager.SetProgressState(Program.MainForm, TaskbarProgressBarStatus.Normal);
DialogResult beforeUploadResult = DialogResult.OK;
bool cancelUpload = false;
if (Info.TaskSettings.AfterCaptureJob.HasFlag(AfterCaptureTasks.ShowBeforeUploadWindow))
{
BeforeUploadForm form = new BeforeUploadForm(Info);
beforeUploadResult = form.ShowDialog();
cancelUpload = form.ShowDialog() != DialogResult.OK;
}
if (beforeUploadResult == DialogResult.OK)
if (!cancelUpload)
{
if (threadWorker != null)
{
@ -396,7 +396,7 @@ private void DoUploadJob()
}
}
}
else if (beforeUploadResult == DialogResult.Cancel)
else
{
Info.Result.IsURLExpected = false;
}
@ -561,7 +561,7 @@ private bool DoAfterCaptureJobs()
{
using (SaveFileDialog sfd = new SaveFileDialog())
{
bool imageSaved = false;
bool imageSaved;
do
{
@ -1412,6 +1412,11 @@ private void PrepareUploader(Uploader currentUploader)
uploader = currentUploader;
uploader.BufferSize = (int)Math.Pow(2, Program.Settings.BufferSizePower) * 1024;
uploader.ProgressChanged += uploader_ProgressChanged;
if (Info.TaskSettings.AfterUploadJob.HasFlag(AfterUploadTasks.CopyURLToClipboard) && Info.TaskSettings.AdvancedSettings.EarlyCopyURL)
{
uploader.EarlyURLCopyRequested += url => ClipboardHelpers.CopyText(url);
}
}
private void uploader_ProgressChanged(ProgressManager progress)