From c71bfe9d9cce0656b4d415ee8114bbdb07c59f10 Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 22 Oct 2021 23:32:04 +0300 Subject: [PATCH 1/3] Add default translator site drop-down to OCR form --- .../Forms/OCRSpaceForm.Designer.cs | 36 +++- ShareX.UploadersLib/Forms/OCRSpaceForm.cs | 38 +++- ShareX.UploadersLib/Forms/OCRSpaceForm.resx | 162 ++++++++++++------ ShareX.UploadersLib/Helpers/OCROptions.cs | 1 + 4 files changed, 174 insertions(+), 63 deletions(-) diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs b/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs index 3d2ae7803..7d44ce70b 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs @@ -35,7 +35,9 @@ private void InitializeComponent() this.lblResult = new System.Windows.Forms.Label(); this.btnStartOCR = new System.Windows.Forms.Button(); this.pbProgress = new System.Windows.Forms.ProgressBar(); - this.llGoogleTranslate = new System.Windows.Forms.LinkLabel(); + this.btnOpenInBrowser = new System.Windows.Forms.Button(); + this.cbDefaultTLSite = new System.Windows.Forms.ComboBox(); + this.lblTranslatorSite = new System.Windows.Forms.Label(); this.SuspendLayout(); // // cbLanguages @@ -75,19 +77,33 @@ private void InitializeComponent() this.pbProgress.Name = "pbProgress"; this.pbProgress.Style = System.Windows.Forms.ProgressBarStyle.Marquee; // - // llGoogleTranslate + // btnOpenInBrowser // - resources.ApplyResources(this.llGoogleTranslate, "llGoogleTranslate"); - this.llGoogleTranslate.Name = "llGoogleTranslate"; - this.llGoogleTranslate.TabStop = true; - this.llGoogleTranslate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llGoogleTranslate_LinkClicked); + resources.ApplyResources(this.btnOpenInBrowser, "btnOpenInBrowser"); + this.btnOpenInBrowser.Name = "btnOpenInBrowser"; + this.btnOpenInBrowser.UseVisualStyleBackColor = true; + this.btnOpenInBrowser.Click += new System.EventHandler(this.btnOpenInBrowser_Click); + // + // cbDefaultTLSite + // + this.cbDefaultTLSite.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbDefaultTLSite.FormattingEnabled = true; + resources.ApplyResources(this.cbDefaultTLSite, "cbDefaultTLSite"); + this.cbDefaultTLSite.Name = "cbDefaultTLSite"; + this.cbDefaultTLSite.SelectedIndexChanged += new System.EventHandler(this.cbDefaultTLSite_SelectedIndexChanged); + // + // lblTranslatorSite + // + resources.ApplyResources(this.lblTranslatorSite, "lblTranslatorSite"); + this.lblTranslatorSite.Name = "lblTranslatorSite"; // // OCRSpaceForm // resources.ApplyResources(this, "$this"); - this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.Controls.Add(this.llGoogleTranslate); + this.Controls.Add(this.lblTranslatorSite); + this.Controls.Add(this.cbDefaultTLSite); + this.Controls.Add(this.btnOpenInBrowser); this.Controls.Add(this.lblResult); this.Controls.Add(this.txtResult); this.Controls.Add(this.lblLanguage); @@ -110,6 +126,8 @@ private void InitializeComponent() private System.Windows.Forms.Label lblResult; private System.Windows.Forms.Button btnStartOCR; private System.Windows.Forms.ProgressBar pbProgress; - private System.Windows.Forms.LinkLabel llGoogleTranslate; + private System.Windows.Forms.Button btnOpenInBrowser; + private System.Windows.Forms.ComboBox cbDefaultTLSite; + private System.Windows.Forms.Label lblTranslatorSite; } } \ No newline at end of file diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.cs b/ShareX.UploadersLib/Forms/OCRSpaceForm.cs index 964ca8f37..c924d2910 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.cs +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.cs @@ -26,20 +26,37 @@ using ShareX.HelpersLib; using ShareX.UploadersLib.OtherServices; using System; +using System.Collections.Generic; +using System.ComponentModel; using System.IO; using System.Threading.Tasks; using System.Windows.Forms; namespace ShareX.UploadersLib { + public enum OCRSpaceTranslatorSites + { + [Description("Google Translate")] + Google, + [Description("DeepL Translate")] + DeepL + } + public partial class OCRSpaceForm : Form { - public OCRSpaceLanguages Language { get; set; } public string Result { get; private set; } private Stream data; private string fileName; private OCROptions ocrOptions; + private OCRSpaceLanguages Language { get; set; } + + private Dictionary TranslatorSiteLinks = + new Dictionary() + { + { OCRSpaceTranslatorSites.Google, "https://translate.google.com/#auto/en/" }, + { OCRSpaceTranslatorSites.DeepL, "https://www.deepl.com/translator#auto/en/" } + }; public OCRSpaceForm(OCROptions ocrOptions) { @@ -49,6 +66,10 @@ public OCRSpaceForm(OCROptions ocrOptions) this.ocrOptions = ocrOptions; cbLanguages.Items.AddRange(Helpers.GetEnumDescriptions()); cbLanguages.SelectedIndex = (int)ocrOptions.DefaultLanguage; + + cbDefaultTLSite.Items.AddRange(Helpers.GetEnumDescriptions()); + cbDefaultTLSite.SelectedIndex = (int)ocrOptions.DefaultTranslatorSite; + Language = ocrOptions.DefaultLanguage; txtResult.SupportSelectAll(); } @@ -85,7 +106,7 @@ public async Task StartOCR(Stream stream, string fileName) { if (stream != null && stream.Length > 0 && !string.IsNullOrEmpty(fileName)) { - cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = false; + cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = false; pbProgress.Visible = true; Result = await OCRSpace.DoOCRAsync(Language, stream, fileName); @@ -98,10 +119,9 @@ public async Task StartOCR(Stream stream, string fileName) if (!IsDisposed) { UpdateControls(); - cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = true; + cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = true; pbProgress.Visible = false; txtResult.Focus(); - llGoogleTranslate.Enabled = true; } } } @@ -116,10 +136,16 @@ private async void btnStartOCR_Click(object sender, EventArgs e) await StartOCR(data, fileName); } - private void llGoogleTranslate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + private void btnOpenInBrowser_Click(object sender, EventArgs e) { - URLHelpers.OpenURL("https://translate.google.com/#auto/en/" + Uri.EscapeDataString(txtResult.Text)); + URLHelpers.OpenURL(TranslatorSiteLinks[ocrOptions.DefaultTranslatorSite] + Uri.EscapeDataString(txtResult.Text)); Close(); } + + private void cbDefaultTLSite_SelectedIndexChanged(object sender, EventArgs e) + { + // This doesn't work + ocrOptions.DefaultTranslatorSite = (OCRSpaceTranslatorSites)cbDefaultTLSite.SelectedIndex; + } } } \ No newline at end of file diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.resx b/ShareX.UploadersLib/Forms/OCRSpaceForm.resx index 2bf859e8f..9ce8a8378 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.resx +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.resx @@ -119,10 +119,14 @@ - 8, 24 + 10, 30 + + + + 4, 4, 4, 4 - 152, 21 + 189, 24 @@ -138,16 +142,19 @@ $this - 4 + 6 True - 5, 8 + 6, 10 + + + 4, 0, 4, 0 - 58, 13 + 76, 17 1 @@ -165,14 +172,16 @@ $this - 3 + 5 - Top, Bottom, Left, Right - 8, 72 + 10, 90 + + + 4, 4, 4, 4 True @@ -181,7 +190,7 @@ Both - 544, 368 + 679, 459 2 @@ -196,16 +205,19 @@ $this - 2 + 4 True - 5, 56 + 6, 70 + + + 4, 0, 4, 0 - 40, 13 + 52, 17 3 @@ -223,13 +235,16 @@ $this - 1 + 3 - 168, 22 + 206, 28 + + + 4, 4, 4, 4 - 136, 24 + 158, 30 5 @@ -247,13 +262,19 @@ $this - 6 + 8 + + + NoControl - 168, 22 + 206, 27 + + + 4, 4, 4, 4 - 136, 24 + 158, 30 6 @@ -271,52 +292,97 @@ $this - 5 - - - Top, Right - - - True - - - False - - - 336, 56 - - - 216, 13 - - 7 - - Open in Google Translate and close window + + 547, 28 - - TopRight + + 4, 4, 4, 4 - - llGoogleTranslate + + 142, 30 - - System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 8 - + + Open in browser + + + btnOpenInBrowser + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + $this - + + 2 + + + 371, 30 + + + 4, 4, 4, 4 + + + 169, 24 + + + 9 + + + cbDefaultTLSite + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + True + + + 370, 10 + + + 103, 17 + + + 10 + + + Translator site: + + + lblTranslatorSite + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + 0 True - 6, 13 + 120, 120 - 560, 448 + 700, 560 + + + 4, 4, 4, 4 CenterScreen diff --git a/ShareX.UploadersLib/Helpers/OCROptions.cs b/ShareX.UploadersLib/Helpers/OCROptions.cs index a53073eb4..bad2397e0 100644 --- a/ShareX.UploadersLib/Helpers/OCROptions.cs +++ b/ShareX.UploadersLib/Helpers/OCROptions.cs @@ -31,6 +31,7 @@ public class OCROptions { public bool Permission { get; set; } = false; public OCRSpaceLanguages DefaultLanguage { get; set; } = OCRSpaceLanguages.eng; + public OCRSpaceTranslatorSites DefaultTranslatorSite { get; set; } = OCRSpaceTranslatorSites.Google; public bool Silent { get; set; } = false; public bool ProcessOnLoad { get; set; } = true; public bool AutoCopy { get; set; } = false; From 0d41bc8b8f07fd79571e24731875302e2cb5533e Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 29 Oct 2021 23:22:06 +0300 Subject: [PATCH 2/3] Rename OCR sites variables, add more sites Also fix sites dropdown style and enabled prop update --- .../Forms/OCRSpaceForm.Designer.cs | 30 ++++++------- ShareX.UploadersLib/Forms/OCRSpaceForm.cs | 40 +++++++++++------- ShareX.UploadersLib/Forms/OCRSpaceForm.resx | 42 +++++++++---------- ShareX.UploadersLib/Helpers/OCROptions.cs | 2 +- 4 files changed, 63 insertions(+), 51 deletions(-) diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs b/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs index 7d44ce70b..4c9f189b1 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.Designer.cs @@ -36,8 +36,8 @@ private void InitializeComponent() this.btnStartOCR = new System.Windows.Forms.Button(); this.pbProgress = new System.Windows.Forms.ProgressBar(); this.btnOpenInBrowser = new System.Windows.Forms.Button(); - this.cbDefaultTLSite = new System.Windows.Forms.ComboBox(); - this.lblTranslatorSite = new System.Windows.Forms.Label(); + this.cbDefaultSite = new System.Windows.Forms.ComboBox(); + this.lblExternalSite = new System.Windows.Forms.Label(); this.SuspendLayout(); // // cbLanguages @@ -84,25 +84,25 @@ private void InitializeComponent() this.btnOpenInBrowser.UseVisualStyleBackColor = true; this.btnOpenInBrowser.Click += new System.EventHandler(this.btnOpenInBrowser_Click); // - // cbDefaultTLSite + // cbDefaultSite // - this.cbDefaultTLSite.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbDefaultTLSite.FormattingEnabled = true; - resources.ApplyResources(this.cbDefaultTLSite, "cbDefaultTLSite"); - this.cbDefaultTLSite.Name = "cbDefaultTLSite"; - this.cbDefaultTLSite.SelectedIndexChanged += new System.EventHandler(this.cbDefaultTLSite_SelectedIndexChanged); + this.cbDefaultSite.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbDefaultSite.FormattingEnabled = true; + resources.ApplyResources(this.cbDefaultSite, "cbDefaultSite"); + this.cbDefaultSite.Name = "cbDefaultSite"; + this.cbDefaultSite.SelectedIndexChanged += new System.EventHandler(this.cbDefaultSite_SelectedIndexChanged); // - // lblTranslatorSite + // lblExternalSite // - resources.ApplyResources(this.lblTranslatorSite, "lblTranslatorSite"); - this.lblTranslatorSite.Name = "lblTranslatorSite"; + resources.ApplyResources(this.lblExternalSite, "lblExternalSite"); + this.lblExternalSite.Name = "lblExternalSite"; // // OCRSpaceForm // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.Controls.Add(this.lblTranslatorSite); - this.Controls.Add(this.cbDefaultTLSite); + this.Controls.Add(this.lblExternalSite); + this.Controls.Add(this.cbDefaultSite); this.Controls.Add(this.btnOpenInBrowser); this.Controls.Add(this.lblResult); this.Controls.Add(this.txtResult); @@ -127,7 +127,7 @@ private void InitializeComponent() private System.Windows.Forms.Button btnStartOCR; private System.Windows.Forms.ProgressBar pbProgress; private System.Windows.Forms.Button btnOpenInBrowser; - private System.Windows.Forms.ComboBox cbDefaultTLSite; - private System.Windows.Forms.Label lblTranslatorSite; + private System.Windows.Forms.ComboBox cbDefaultSite; + private System.Windows.Forms.Label lblExternalSite; } } \ No newline at end of file diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.cs b/ShareX.UploadersLib/Forms/OCRSpaceForm.cs index c924d2910..45b6c2865 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.cs +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.cs @@ -34,12 +34,20 @@ namespace ShareX.UploadersLib { - public enum OCRSpaceTranslatorSites + public enum OCRSpaceSites { [Description("Google Translate")] - Google, + GoogleTranslate, [Description("DeepL Translate")] - DeepL + DeepL, + [Description("Jisho")] + Jisho, + [Description("ichi.moe")] + Ichi, + [Description("Google")] + Google, + [Description("ekşi sözlük")] + Eksisozluk, } public partial class OCRSpaceForm : Form @@ -51,11 +59,15 @@ public partial class OCRSpaceForm : Form private OCROptions ocrOptions; private OCRSpaceLanguages Language { get; set; } - private Dictionary TranslatorSiteLinks = - new Dictionary() + private Dictionary SiteLinks = + new Dictionary() { - { OCRSpaceTranslatorSites.Google, "https://translate.google.com/#auto/en/" }, - { OCRSpaceTranslatorSites.DeepL, "https://www.deepl.com/translator#auto/en/" } + { OCRSpaceSites.GoogleTranslate, "https://translate.google.com/#auto/en/" }, + { OCRSpaceSites.DeepL, "https://www.deepl.com/translator#auto/en/" }, + { OCRSpaceSites.Jisho, "https://jisho.org/search/" }, + { OCRSpaceSites.Ichi, "https://ichi.moe/cl/qr/?q=" }, + { OCRSpaceSites.Google, "https://www.google.com/search?q=" }, + { OCRSpaceSites.Eksisozluk, "https://eksisozluk.com/?q=" } }; public OCRSpaceForm(OCROptions ocrOptions) @@ -67,8 +79,8 @@ public OCRSpaceForm(OCROptions ocrOptions) cbLanguages.Items.AddRange(Helpers.GetEnumDescriptions()); cbLanguages.SelectedIndex = (int)ocrOptions.DefaultLanguage; - cbDefaultTLSite.Items.AddRange(Helpers.GetEnumDescriptions()); - cbDefaultTLSite.SelectedIndex = (int)ocrOptions.DefaultTranslatorSite; + cbDefaultSite.Items.AddRange(Helpers.GetEnumDescriptions()); + cbDefaultSite.SelectedIndex = (int)ocrOptions.DefaultSite; Language = ocrOptions.DefaultLanguage; txtResult.SupportSelectAll(); @@ -106,7 +118,7 @@ public async Task StartOCR(Stream stream, string fileName) { if (stream != null && stream.Length > 0 && !string.IsNullOrEmpty(fileName)) { - cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = false; + cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = cbDefaultSite.Enabled = false; pbProgress.Visible = true; Result = await OCRSpace.DoOCRAsync(Language, stream, fileName); @@ -119,7 +131,7 @@ public async Task StartOCR(Stream stream, string fileName) if (!IsDisposed) { UpdateControls(); - cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = true; + cbLanguages.Enabled = btnStartOCR.Enabled = txtResult.Enabled = btnOpenInBrowser.Enabled = cbDefaultSite.Enabled = true; pbProgress.Visible = false; txtResult.Focus(); } @@ -138,14 +150,14 @@ private async void btnStartOCR_Click(object sender, EventArgs e) private void btnOpenInBrowser_Click(object sender, EventArgs e) { - URLHelpers.OpenURL(TranslatorSiteLinks[ocrOptions.DefaultTranslatorSite] + Uri.EscapeDataString(txtResult.Text)); + URLHelpers.OpenURL(SiteLinks[ocrOptions.DefaultSite] + Uri.EscapeDataString(txtResult.Text)); Close(); } - private void cbDefaultTLSite_SelectedIndexChanged(object sender, EventArgs e) + private void cbDefaultSite_SelectedIndexChanged(object sender, EventArgs e) { // This doesn't work - ocrOptions.DefaultTranslatorSite = (OCRSpaceTranslatorSites)cbDefaultTLSite.SelectedIndex; + ocrOptions.DefaultSite = (OCRSpaceSites)cbDefaultSite.SelectedIndex; } } } \ No newline at end of file diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.resx b/ShareX.UploadersLib/Forms/OCRSpaceForm.resx index 9ce8a8378..580d930a9 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.resx +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.resx @@ -321,55 +321,55 @@ 2 - + 371, 30 - + 4, 4, 4, 4 - + 169, 24 - + 9 - - cbDefaultTLSite + + cbDefaultSite - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 1 - + True - + 370, 10 - - 103, 17 + + 89, 17 - + 10 - - Translator site: + + External site: - - lblTranslatorSite + + lblExternalSite - + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 0 diff --git a/ShareX.UploadersLib/Helpers/OCROptions.cs b/ShareX.UploadersLib/Helpers/OCROptions.cs index bad2397e0..33447f331 100644 --- a/ShareX.UploadersLib/Helpers/OCROptions.cs +++ b/ShareX.UploadersLib/Helpers/OCROptions.cs @@ -31,7 +31,7 @@ public class OCROptions { public bool Permission { get; set; } = false; public OCRSpaceLanguages DefaultLanguage { get; set; } = OCRSpaceLanguages.eng; - public OCRSpaceTranslatorSites DefaultTranslatorSite { get; set; } = OCRSpaceTranslatorSites.Google; + public OCRSpaceSites DefaultSite { get; set; } = OCRSpaceSites.GoogleTranslate; public bool Silent { get; set; } = false; public bool ProcessOnLoad { get; set; } = true; public bool AutoCopy { get; set; } = false; From 511af9e7e04b91c7955c3d06cf38fa0d9e04087f Mon Sep 17 00:00:00 2001 From: Alexander Date: Sat, 30 Oct 2021 19:26:56 +0300 Subject: [PATCH 3/3] Remove foreign site from default OCR site options --- ShareX.UploadersLib/Forms/OCRSpaceForm.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ShareX.UploadersLib/Forms/OCRSpaceForm.cs b/ShareX.UploadersLib/Forms/OCRSpaceForm.cs index 45b6c2865..097ae9bd9 100644 --- a/ShareX.UploadersLib/Forms/OCRSpaceForm.cs +++ b/ShareX.UploadersLib/Forms/OCRSpaceForm.cs @@ -45,9 +45,7 @@ public enum OCRSpaceSites [Description("ichi.moe")] Ichi, [Description("Google")] - Google, - [Description("ekşi sözlük")] - Eksisozluk, + Google } public partial class OCRSpaceForm : Form @@ -66,8 +64,7 @@ public partial class OCRSpaceForm : Form { OCRSpaceSites.DeepL, "https://www.deepl.com/translator#auto/en/" }, { OCRSpaceSites.Jisho, "https://jisho.org/search/" }, { OCRSpaceSites.Ichi, "https://ichi.moe/cl/qr/?q=" }, - { OCRSpaceSites.Google, "https://www.google.com/search?q=" }, - { OCRSpaceSites.Eksisozluk, "https://eksisozluk.com/?q=" } + { OCRSpaceSites.Google, "https://www.google.com/search?q=" } }; public OCRSpaceForm(OCROptions ocrOptions)