Refactor clipboard upload form codes

This commit is contained in:
Jaex 2020-08-08 05:04:59 +03:00
parent 0651a33c00
commit 3d4e1c952a
4 changed files with 58 additions and 73 deletions

View file

@ -36,14 +36,6 @@ public enum EDataType
URL
}
public enum EClipboardContentType
{
Default,
Image,
Text,
Files
}
public enum PNGBitDepth // Localized
{
Default,

View file

@ -51,6 +51,7 @@ private void InitializeComponent()
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Name = "btnCancel";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// txtClipboard
//
@ -89,6 +90,7 @@ private void InitializeComponent()
this.btnUpload.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnUpload.Name = "btnUpload";
this.btnUpload.UseVisualStyleBackColor = true;
this.btnUpload.Click += new System.EventHandler(this.btnUpload_Click);
//
// ClipboardUploadForm
//
@ -106,7 +108,7 @@ private void InitializeComponent()
this.Controls.Add(this.lbClipboard);
this.Name = "ClipboardUploadForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.Load += new System.EventHandler(this.ClipboardContentViewer_Load);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ClipboardUploadForm_FormClosed);
this.Shown += new System.EventHandler(this.ClipboardContentViewer_Shown);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -35,13 +35,16 @@ public partial class ClipboardUploadForm : Form
{
public bool IsClipboardContentValid { get; private set; }
public bool DontShowThisWindow { get; private set; }
public EClipboardContentType ClipboardContentType { get; private set; }
public object ClipboardContent { get; private set; }
public bool KeepClipboardContent { get; private set; }
public ClipboardUploadForm(bool showCheckBox = false)
private TaskSettings taskSettings;
public ClipboardUploadForm(TaskSettings taskSettings, bool showCheckBox = false)
{
InitializeComponent();
ShareXResources.ApplyTheme(this);
this.taskSettings = taskSettings;
if (ShareXResources.UseCustomTheme)
{
@ -49,14 +52,12 @@ public ClipboardUploadForm(bool showCheckBox = false)
}
cbDontShowThisWindow.Visible = showCheckBox;
IsClipboardContentValid = CheckClipboardContent();
btnUpload.Enabled = IsClipboardContentValid;
}
private void ClipboardContentViewer_Load(object sender, EventArgs e)
{
IsClipboardContentValid = CheckClipboardContents();
}
private bool CheckClipboardContents()
private bool CheckClipboardContent()
{
pbClipboard.Visible = txtClipboard.Visible = lbClipboard.Visible = false;
@ -66,7 +67,6 @@ private bool CheckClipboardContents()
{
if (bmp != null)
{
ClipboardContentType = EClipboardContentType.Image;
ClipboardContent = bmp.Clone();
pbClipboard.LoadImage(bmp);
pbClipboard.Visible = true;
@ -81,7 +81,6 @@ private bool CheckClipboardContents()
if (!string.IsNullOrEmpty(text))
{
ClipboardContentType = EClipboardContentType.Text;
ClipboardContent = text;
txtClipboard.Text = text;
txtClipboard.Visible = true;
@ -95,7 +94,6 @@ private bool CheckClipboardContents()
if (files != null && files.Length > 0)
{
ClipboardContentType = EClipboardContentType.Files;
ClipboardContent = files;
lbClipboard.Items.AddRange(files);
lbClipboard.Visible = true;
@ -108,14 +106,53 @@ private bool CheckClipboardContents()
return false;
}
private void ClipboardUpload()
{
if (IsClipboardContentValid)
{
switch (ClipboardContent)
{
case Bitmap bmp:
KeepClipboardContent = true;
UploadManager.ProcessImageUpload(bmp, taskSettings);
break;
case string text:
UploadManager.ProcessTextUpload(text, taskSettings);
break;
case string[] files:
UploadManager.ProcessFilesUpload(files, taskSettings);
break;
}
}
}
private void ClipboardContentViewer_Shown(object sender, EventArgs e)
{
this.ForceActivate();
}
private void ClipboardUploadForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (!KeepClipboardContent && ClipboardContent is Bitmap bmp)
{
bmp.Dispose();
}
}
private void cbDontShowThisWindow_CheckedChanged(object sender, EventArgs e)
{
DontShowThisWindow = cbDontShowThisWindow.Checked;
}
private void btnUpload_Click(object sender, EventArgs e)
{
ClipboardUpload();
Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
Close();
}
}
}

View file

@ -142,7 +142,7 @@ public static void UploadFolder(TaskSettings taskSettings = null)
}
}
private static void ProcessImageUpload(Bitmap bmp, TaskSettings taskSettings)
public static void ProcessImageUpload(Bitmap bmp, TaskSettings taskSettings)
{
if (bmp != null)
{
@ -155,7 +155,7 @@ private static void ProcessImageUpload(Bitmap bmp, TaskSettings taskSettings)
}
}
private static void ProcessTextUpload(string text, TaskSettings taskSettings)
public static void ProcessTextUpload(string text, TaskSettings taskSettings)
{
if (!string.IsNullOrEmpty(text))
{
@ -193,7 +193,7 @@ private static void ProcessTextUpload(string text, TaskSettings taskSettings)
}
}
private static void ProcessFilesUpload(string[] files, TaskSettings taskSettings)
public static void ProcessFilesUpload(string[] files, TaskSettings taskSettings)
{
if (files != null && files.Length > 0)
{
@ -225,58 +225,13 @@ public static void ClipboardUpload(TaskSettings taskSettings = null)
}
}
private static void ClipboardUploadCached(ClipboardUploadForm form, TaskSettings taskSettings = null)
{
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
if (form.ClipboardContentType == EClipboardContentType.Image)
{
Bitmap bmp = (Bitmap)form.ClipboardContent;
ProcessImageUpload(bmp, taskSettings);
}
else if (form.ClipboardContentType == EClipboardContentType.Text)
{
string text = (string)form.ClipboardContent;
ProcessTextUpload(text, taskSettings);
}
else if (form.ClipboardContentType == EClipboardContentType.Files)
{
string[] files = (string[])form.ClipboardContent;
ProcessFilesUpload(files, taskSettings);
}
}
private static void ProcessClipboardUploadDialog(ClipboardUploadForm form, TaskSettings taskSettings = null)
{
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
if (form.ShowDialog() == DialogResult.OK && form.IsClipboardContentValid)
{
if (form.ClipboardContentType != EClipboardContentType.Default)
{
ClipboardUploadCached(form, taskSettings);
}
else
{
ClipboardUpload(taskSettings);
}
}
else if (form.ClipboardContentType == EClipboardContentType.Image)
{
((Bitmap)form.ClipboardContent).Dispose();
}
}
public static void ClipboardUploadWithContentViewer(TaskSettings taskSettings = null)
{
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
using (ClipboardUploadForm clipboardUploadForm = new ClipboardUploadForm())
using (ClipboardUploadForm clipboardUploadForm = new ClipboardUploadForm(taskSettings))
{
ProcessClipboardUploadDialog(clipboardUploadForm, taskSettings);
clipboardUploadForm.ShowDialog();
}
}
@ -286,10 +241,9 @@ public static void ClipboardUploadMainWindow(TaskSettings taskSettings = null)
if (Program.Settings.ShowClipboardContentViewer)
{
using (ClipboardUploadForm clipboardUploadForm = new ClipboardUploadForm(true))
using (ClipboardUploadForm clipboardUploadForm = new ClipboardUploadForm(taskSettings, true))
{
ProcessClipboardUploadDialog(clipboardUploadForm, taskSettings);
clipboardUploadForm.ShowDialog();
Program.Settings.ShowClipboardContentViewer = !clipboardUploadForm.DontShowThisWindow;
}
}