Added Upload and Copy buttons to webpage capture

This commit is contained in:
Jaex 2015-06-26 18:59:30 +03:00
parent a3d654269a
commit 4849002eca
4 changed files with 122 additions and 15 deletions

View file

@ -46,6 +46,8 @@ private void InitializeComponent()
this.lblWebpageX = new System.Windows.Forms.Label();
this.lblCaptureDelay = new System.Windows.Forms.Label();
this.nudCaptureDelay = new System.Windows.Forms.NumericUpDown();
this.btnCopy = new System.Windows.Forms.Button();
this.btnUpload = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pbResult)).BeginInit();
this.pResult.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nudWebpageWidth)).BeginInit();
@ -160,11 +162,27 @@ private void InitializeComponent()
this.nudCaptureDelay.Name = "nudCaptureDelay";
this.nudCaptureDelay.ValueChanged += new System.EventHandler(this.nudCaptureDelay_ValueChanged);
//
// btnCopy
//
resources.ApplyResources(this.btnCopy, "btnCopy");
this.btnCopy.Name = "btnCopy";
this.btnCopy.UseVisualStyleBackColor = true;
this.btnCopy.Click += new System.EventHandler(this.btnCopy_Click);
//
// btnUpload
//
resources.ApplyResources(this.btnUpload, "btnUpload");
this.btnUpload.Name = "btnUpload";
this.btnUpload.UseVisualStyleBackColor = true;
this.btnUpload.Click += new System.EventHandler(this.btnUpload_Click);
//
// WebpageCaptureForm
//
this.AcceptButton = this.btnCapture;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnUpload);
this.Controls.Add(this.btnCopy);
this.Controls.Add(this.nudCaptureDelay);
this.Controls.Add(this.lblCaptureDelay);
this.Controls.Add(this.nudWebpageHeight);
@ -200,5 +218,7 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblWebpageX;
private System.Windows.Forms.Label lblCaptureDelay;
private System.Windows.Forms.NumericUpDown nudCaptureDelay;
private System.Windows.Forms.Button btnCopy;
private System.Windows.Forms.Button btnUpload;
}
}

View file

@ -38,6 +38,9 @@ namespace ShareX
{
public partial class WebpageCaptureForm : Form
{
public event Action<Image> OnImageUploadRequested;
public event Action<Image> OnImageCopyRequested;
public bool IsBusy { get; private set; }
private WebpageCapture webpageCapture;
@ -70,15 +73,13 @@ private void LoadSettings()
nudWebpageHeight.Value = browserSize.Height.Between((int)nudWebpageHeight.Minimum, (int)nudWebpageHeight.Maximum);
nudCaptureDelay.Value = (decimal)Program.Settings.WebpageCaptureDelay.Between((float)nudCaptureDelay.Minimum, (float)nudCaptureDelay.Maximum);
btnCapture.Enabled = txtURL.TextLength > 0;
}
private void webpageCapture_CaptureCompleted(Bitmap bmp)
{
pbResult.Image = bmp;
IsBusy = false;
btnCapture.Enabled = txtURL.Enabled = !IsBusy;
btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = !IsBusy;
}
private void txtURL_TextChanged(object sender, EventArgs e)
@ -104,7 +105,7 @@ private void nudCaptureDelay_ValueChanged(object sender, EventArgs e)
private void btnCapture_Click(object sender, EventArgs e)
{
IsBusy = true;
btnCapture.Enabled = txtURL.Enabled = !IsBusy;
btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = !IsBusy;
if (pbResult.Image != null)
{
pbResult.Image.Dispose();
@ -114,5 +115,23 @@ private void btnCapture_Click(object sender, EventArgs e)
webpageCapture.CaptureDelay = (int)nudCaptureDelay.Value * 1000;
webpageCapture.CapturePage(txtURL.Text, new Size((int)nudWebpageWidth.Value, (int)nudWebpageWidth.Value));
}
private void btnUpload_Click(object sender, EventArgs e)
{
if (pbResult.Image != null)
{
Image img = (Image)pbResult.Image.Clone();
OnImageUploadRequested(img);
}
}
private void btnCopy_Click(object sender, EventArgs e)
{
if (pbResult.Image != null)
{
Image img = (Image)pbResult.Image.Clone();
OnImageCopyRequested(img);
}
}
}
}

View file

@ -142,7 +142,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtURL.ZOrder" xml:space="preserve">
<value>9</value>
<value>11</value>
</data>
<data name="lblURL.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -169,7 +169,10 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblURL.ZOrder" xml:space="preserve">
<value>8</value>
<value>10</value>
</data>
<data name="btnCapture.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnCapture.Location" type="System.Drawing.Point, System.Drawing">
<value>336, 35</value>
@ -193,7 +196,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnCapture.ZOrder" xml:space="preserve">
<value>7</value>
<value>9</value>
</data>
<data name="pbResult.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
@ -244,7 +247,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pResult.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</value>
</data>
<data name="lblWebpageSize.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -271,7 +274,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblWebpageSize.ZOrder" xml:space="preserve">
<value>5</value>
<value>7</value>
</data>
<data name="nudWebpageWidth.Location" type="System.Drawing.Point, System.Drawing">
<value>80, 36</value>
@ -295,7 +298,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudWebpageWidth.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="nudWebpageHeight.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 36</value>
@ -319,7 +322,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudWebpageHeight.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="lblWebpageX.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -349,7 +352,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblWebpageX.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="lblCaptureDelay.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -376,7 +379,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblCaptureDelay.ZOrder" xml:space="preserve">
<value>1</value>
<value>3</value>
</data>
<data name="nudCaptureDelay.Location" type="System.Drawing.Point, System.Drawing">
<value>280, 36</value>
@ -400,6 +403,60 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudCaptureDelay.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="btnCopy.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>576, 35</value>
</data>
<data name="btnCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 23</value>
</data>
<data name="btnCopy.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="btnCopy.Text" xml:space="preserve">
<value>Copy</value>
</data>
<data name="&gt;&gt;btnCopy.Name" xml:space="preserve">
<value>btnCopy</value>
</data>
<data name="&gt;&gt;btnCopy.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnCopy.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;btnCopy.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnUpload.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnUpload.Location" type="System.Drawing.Point, System.Drawing">
<value>456, 35</value>
</data>
<data name="btnUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 23</value>
</data>
<data name="btnUpload.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="btnUpload.Text" xml:space="preserve">
<value>Upload</value>
</data>
<data name="&gt;&gt;btnUpload.Name" xml:space="preserve">
<value>btnUpload</value>
</data>
<data name="&gt;&gt;btnUpload.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnUpload.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;btnUpload.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View file

@ -499,9 +499,20 @@ public static void OpenAutoCapture()
AutoCaptureForm.Instance.ShowActivate();
}
public static void OpenWebpageCapture()
public static void OpenWebpageCapture(TaskSettings taskSettings = null)
{
new WebpageCaptureForm().Show();
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
WebpageCaptureForm webpageCaptureForm = new WebpageCaptureForm();
webpageCaptureForm.OnImageUploadRequested += img => UploadManager.RunImageTask(img, taskSettings);
webpageCaptureForm.OnImageCopyRequested += img =>
{
using (img)
{
ClipboardHelpers.CopyImage(img);
}
};
webpageCaptureForm.Show();
}
public static void StartAutoCapture()