mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Added EarlyCopyURL support
This commit is contained in:
parent
1d7b08283e
commit
3d1cc280c5
4 changed files with 34 additions and 5 deletions
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue