diff --git a/ShareX/Forms/QRCodeForm.Designer.cs b/ShareX/Forms/QRCodeForm.Designer.cs
index 3e2676491..21b77a8bc 100644
--- a/ShareX/Forms/QRCodeForm.Designer.cs
+++ b/ShareX/Forms/QRCodeForm.Designer.cs
@@ -37,19 +37,22 @@ private void InitializeComponent()
this.tss1 = new System.Windows.Forms.ToolStripSeparator();
this.tsmiDecode = new System.Windows.Forms.ToolStripMenuItem();
this.txtQRCode = new System.Windows.Forms.TextBox();
- this.pbQRCode = new System.Windows.Forms.PictureBox();
this.tcMain = new System.Windows.Forms.TabControl();
this.tpEncode = new System.Windows.Forms.TabPage();
+ this.nudQRCodeSize = new System.Windows.Forms.NumericUpDown();
this.tpDecode = new System.Windows.Forms.TabPage();
+ this.pDecodeResult = new System.Windows.Forms.Panel();
+ this.rtbDecodeResult = new System.Windows.Forms.RichTextBox();
this.btnDecodeFromFile = new System.Windows.Forms.Button();
this.lblDecodeResult = new System.Windows.Forms.Label();
this.btnDecodeFromScreen = new System.Windows.Forms.Button();
- this.rtbDecodeResult = new System.Windows.Forms.RichTextBox();
- this.pDecodeResult = new System.Windows.Forms.Panel();
+ this.pbQRCode = new ShareX.HelpersLib.MyPictureBox();
+ this.lblQRCodeSize = new System.Windows.Forms.Label();
+ this.lblQRCodeSizeHint = new System.Windows.Forms.Label();
this.cmsQR.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pbQRCode)).BeginInit();
this.tcMain.SuspendLayout();
this.tpEncode.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.nudQRCodeSize)).BeginInit();
this.tpDecode.SuspendLayout();
this.pDecodeResult.SuspendLayout();
this.SuspendLayout();
@@ -102,13 +105,6 @@ private void InitializeComponent()
this.txtQRCode.Name = "txtQRCode";
this.txtQRCode.TextChanged += new System.EventHandler(this.txtQRCode_TextChanged);
//
- // pbQRCode
- //
- resources.ApplyResources(this.pbQRCode, "pbQRCode");
- this.pbQRCode.ContextMenuStrip = this.cmsQR;
- this.pbQRCode.Name = "pbQRCode";
- this.pbQRCode.TabStop = false;
- //
// tcMain
//
this.tcMain.Controls.Add(this.tpEncode);
@@ -120,11 +116,30 @@ private void InitializeComponent()
// tpEncode
//
this.tpEncode.BackColor = System.Drawing.SystemColors.Window;
- this.tpEncode.Controls.Add(this.txtQRCode);
+ this.tpEncode.Controls.Add(this.lblQRCodeSizeHint);
+ this.tpEncode.Controls.Add(this.lblQRCodeSize);
+ this.tpEncode.Controls.Add(this.nudQRCodeSize);
this.tpEncode.Controls.Add(this.pbQRCode);
+ this.tpEncode.Controls.Add(this.txtQRCode);
resources.ApplyResources(this.tpEncode, "tpEncode");
this.tpEncode.Name = "tpEncode";
//
+ // nudQRCodeSize
+ //
+ this.nudQRCodeSize.Increment = new decimal(new int[] {
+ 64,
+ 0,
+ 0,
+ 0});
+ resources.ApplyResources(this.nudQRCodeSize, "nudQRCodeSize");
+ this.nudQRCodeSize.Maximum = new decimal(new int[] {
+ 2048,
+ 0,
+ 0,
+ 0});
+ this.nudQRCodeSize.Name = "nudQRCodeSize";
+ this.nudQRCodeSize.ValueChanged += new System.EventHandler(this.nudQRCodeSize_ValueChanged);
+ //
// tpDecode
//
this.tpDecode.BackColor = System.Drawing.SystemColors.Window;
@@ -135,6 +150,20 @@ private void InitializeComponent()
resources.ApplyResources(this.tpDecode, "tpDecode");
this.tpDecode.Name = "tpDecode";
//
+ // pDecodeResult
+ //
+ resources.ApplyResources(this.pDecodeResult, "pDecodeResult");
+ this.pDecodeResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pDecodeResult.Controls.Add(this.rtbDecodeResult);
+ this.pDecodeResult.Name = "pDecodeResult";
+ //
+ // rtbDecodeResult
+ //
+ this.rtbDecodeResult.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ resources.ApplyResources(this.rtbDecodeResult, "rtbDecodeResult");
+ this.rtbDecodeResult.Name = "rtbDecodeResult";
+ this.rtbDecodeResult.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.rtbDecodeResult_LinkClicked);
+ //
// btnDecodeFromFile
//
resources.ApplyResources(this.btnDecodeFromFile, "btnDecodeFromFile");
@@ -154,19 +183,23 @@ private void InitializeComponent()
this.btnDecodeFromScreen.UseVisualStyleBackColor = true;
this.btnDecodeFromScreen.Click += new System.EventHandler(this.btnDecodeFromScreen_Click);
//
- // rtbDecodeResult
+ // pbQRCode
//
- this.rtbDecodeResult.BorderStyle = System.Windows.Forms.BorderStyle.None;
- resources.ApplyResources(this.rtbDecodeResult, "rtbDecodeResult");
- this.rtbDecodeResult.Name = "rtbDecodeResult";
- this.rtbDecodeResult.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.rtbDecodeResult_LinkClicked);
+ resources.ApplyResources(this.pbQRCode, "pbQRCode");
+ this.pbQRCode.BackColor = System.Drawing.SystemColors.Window;
+ this.pbQRCode.ContextMenuStrip = this.cmsQR;
+ this.pbQRCode.Name = "pbQRCode";
+ this.pbQRCode.PictureBoxBackColor = System.Drawing.SystemColors.Window;
//
- // pDecodeResult
+ // lblQRCodeSize
//
- resources.ApplyResources(this.pDecodeResult, "pDecodeResult");
- this.pDecodeResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.pDecodeResult.Controls.Add(this.rtbDecodeResult);
- this.pDecodeResult.Name = "pDecodeResult";
+ resources.ApplyResources(this.lblQRCodeSize, "lblQRCodeSize");
+ this.lblQRCodeSize.Name = "lblQRCodeSize";
+ //
+ // lblQRCodeSizeHint
+ //
+ resources.ApplyResources(this.lblQRCodeSizeHint, "lblQRCodeSizeHint");
+ this.lblQRCodeSizeHint.Name = "lblQRCodeSizeHint";
//
// QRCodeForm
//
@@ -178,10 +211,10 @@ private void InitializeComponent()
this.Shown += new System.EventHandler(this.QRCodeForm_Shown);
this.Resize += new System.EventHandler(this.QRCodeForm_Resize);
this.cmsQR.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.pbQRCode)).EndInit();
this.tcMain.ResumeLayout(false);
this.tpEncode.ResumeLayout(false);
this.tpEncode.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.nudQRCodeSize)).EndInit();
this.tpDecode.ResumeLayout(false);
this.tpDecode.PerformLayout();
this.pDecodeResult.ResumeLayout(false);
@@ -195,7 +228,6 @@ private void InitializeComponent()
private System.Windows.Forms.ContextMenuStrip cmsQR;
private System.Windows.Forms.ToolStripMenuItem tsmiCopy;
private System.Windows.Forms.ToolStripMenuItem tsmiSaveAs;
- private System.Windows.Forms.PictureBox pbQRCode;
private System.Windows.Forms.TabControl tcMain;
private System.Windows.Forms.TabPage tpEncode;
private System.Windows.Forms.TabPage tpDecode;
@@ -207,5 +239,9 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripSeparator tss1;
private System.Windows.Forms.RichTextBox rtbDecodeResult;
private System.Windows.Forms.Panel pDecodeResult;
+ private System.Windows.Forms.NumericUpDown nudQRCodeSize;
+ private HelpersLib.MyPictureBox pbQRCode;
+ private System.Windows.Forms.Label lblQRCodeSize;
+ private System.Windows.Forms.Label lblQRCodeSizeHint;
}
}
\ No newline at end of file
diff --git a/ShareX/Forms/QRCodeForm.cs b/ShareX/Forms/QRCodeForm.cs
index c4f2201f0..d44dcb572 100644
--- a/ShareX/Forms/QRCodeForm.cs
+++ b/ShareX/Forms/QRCodeForm.cs
@@ -111,7 +111,7 @@ private void ClearQRCode()
if (pbQRCode.Image != null)
{
Image temp = pbQRCode.Image;
- pbQRCode.Image = null;
+ pbQRCode.Reset();
temp.Dispose();
}
}
@@ -122,9 +122,21 @@ private void EncodeText(string text)
{
ClearQRCode();
- int size = Math.Min(pbQRCode.Width, pbQRCode.Height);
- pbQRCode.Image = TaskHelpers.CreateQRCode(text, size);
- pbQRCode.BackColor = Color.White;
+ int size;
+
+ if (nudQRCodeSize.Value > 0)
+ {
+ size = (int)nudQRCodeSize.Value;
+ }
+ else
+ {
+ size = Math.Min(pbQRCode.Width, pbQRCode.Height);
+ }
+
+ size = Math.Max(size, 64);
+
+ Image qrCode = TaskHelpers.CreateQRCode(text, size);
+ pbQRCode.LoadImage(qrCode);
}
}
@@ -184,7 +196,10 @@ private void DecodeFromScreen()
private void QRCodeForm_Resize(object sender, EventArgs e)
{
- EncodeText(txtQRCode.Text);
+ if (nudQRCodeSize.Value == 0)
+ {
+ EncodeText(txtQRCode.Text);
+ }
}
private void txtQRCode_TextChanged(object sender, EventArgs e)
@@ -192,6 +207,11 @@ private void txtQRCode_TextChanged(object sender, EventArgs e)
EncodeText(txtQRCode.Text);
}
+ private void nudQRCodeSize_ValueChanged(object sender, EventArgs e)
+ {
+ EncodeText(txtQRCode.Text);
+ }
+
private void tsmiCopy_Click(object sender, EventArgs e)
{
if (pbQRCode.Image != null)
diff --git a/ShareX/Forms/QRCodeForm.resx b/ShareX/Forms/QRCodeForm.resx
index 9272a9059..fea3ea86b 100644
--- a/ShareX/Forms/QRCodeForm.resx
+++ b/ShareX/Forms/QRCodeForm.resx
@@ -121,15 +121,6 @@
17, 17
-
- 181, 98
-
-
- cmsQR
-
-
- System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
180, 22
@@ -157,6 +148,15 @@
Decode
+
+ 181, 98
+
+
+ cmsQR
+
+
+ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
Top, Left, Right
@@ -172,7 +172,7 @@
Both
- 460, 56
+ 560, 56
0
@@ -187,34 +187,109 @@
tpEncode
+ 4
+
+
+ True
+
+
+ 221, 72
+
+
+ 18, 13
+
+
+ 5
+
+
+ px
+
+
+ lblQRCodeSizeHint
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpEncode
+
+
0
+
+ True
+
+
+ 5, 72
+
+
+ 74, 13
+
+
+ 4
+
+
+ QR code size:
+
+
+ lblQRCodeSize
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpEncode
+
+
+ 1
+
+
+ 136, 68
+
+
+ 80, 20
+
+
+ 2
+
+
+ Center
+
+
+ nudQRCodeSize
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpEncode
+
+
+ 2
+
Top, Bottom, Left, Right
- 8, 72
+ 8, 96
- 460, 404
-
-
- CenterImage
+ 560, 430
- 1
+ 3
pbQRCode
- System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null
tpEncode
- 1
+ 3
4, 22
@@ -223,7 +298,7 @@
5, 5, 5, 5
- 476, 485
+ 576, 535
0
@@ -253,11 +328,14 @@
2, 2
- 454, 406
+ 554, 456
0
+
+
+
rtbDecodeResult
@@ -277,7 +355,7 @@
2, 2, 2, 2
- 460, 412
+ 560, 462
3
@@ -376,7 +454,7 @@
3, 3, 3, 3
- 476, 485
+ 576, 535
1
@@ -403,7 +481,7 @@
0, 0
- 484, 511
+ 584, 561
2
@@ -427,7 +505,7 @@
6, 13
- 484, 511
+ 584, 561
300, 300
diff --git a/ShareX/TaskHelpers.cs b/ShareX/TaskHelpers.cs
index 629119fd4..76c57941f 100644
--- a/ShareX/TaskHelpers.cs
+++ b/ShareX/TaskHelpers.cs
@@ -1985,7 +1985,7 @@ public static async Task DownloadAppVeyorBuild()
UpdateMessageBox.Start(updateChecker);
}
- public static Image CreateQRCode(string text, int width, int height)
+ public static Image CreateQRCode(string text, int size)
{
if (CheckQRCodeContent(text))
{
@@ -1996,9 +1996,12 @@ public static Image CreateQRCode(string text, int width, int height)
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
{
- Width = width,
- Height = height,
- CharacterSet = "UTF-8"
+ Width = size,
+ Height = size,
+ CharacterSet = "UTF-8",
+ PureBarcode = true,
+ NoPadding = false,
+ Margin = 1
},
Renderer = new BitmapRenderer()
};
@@ -2014,11 +2017,6 @@ public static Image CreateQRCode(string text, int width, int height)
return null;
}
- public static Image CreateQRCode(string text, int size)
- {
- return CreateQRCode(text, size, size);
- }
-
public static string[] BarcodeScan(Bitmap bmp, bool scanQRCodeOnly = false)
{
try