Add ocr unknown word context menu "Remove 'word'" - thx voska7 :)

Fix #6036
This commit is contained in:
niksedk 2022-06-12 13:20:40 +02:00
parent 616996e6dc
commit 85065110e5
2 changed files with 76 additions and 7 deletions

View File

@ -111,6 +111,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
this.listBoxUnknownWords = new System.Windows.Forms.ListBox();
this.contextMenuStripUnknownWords = new System.Windows.Forms.ContextMenuStrip(this.components);
this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeAllXToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tabPageAllFixes = new System.Windows.Forms.TabPage();
this.listBoxLog = new System.Windows.Forms.ListBox();
this.tabPageSuggestions = new System.Windows.Forms.TabPage();
@ -230,7 +231,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
this.toolStripSeparator3,
this.deleteToolStripMenuItem});
this.contextMenuStripListview.Name = "contextMenuStripListview";
this.contextMenuStripListview.Size = new System.Drawing.Size(306, 408);
this.contextMenuStripListview.Size = new System.Drawing.Size(306, 386);
this.contextMenuStripListview.Opening += new System.ComponentModel.CancelEventHandler(this.ContextMenuStripListviewOpening);
//
// normalToolStripMenuItem
@ -1324,17 +1325,26 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
// contextMenuStripUnknownWords
//
this.contextMenuStripUnknownWords.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.clearToolStripMenuItem});
this.clearToolStripMenuItem,
this.removeAllXToolStripMenuItem});
this.contextMenuStripUnknownWords.Name = "contextMenuStripUnknownWords";
this.contextMenuStripUnknownWords.Size = new System.Drawing.Size(102, 26);
this.contextMenuStripUnknownWords.Size = new System.Drawing.Size(139, 48);
this.contextMenuStripUnknownWords.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripUnknownWords_Opening);
//
// clearToolStripMenuItem
//
this.clearToolStripMenuItem.Name = "clearToolStripMenuItem";
this.clearToolStripMenuItem.Size = new System.Drawing.Size(101, 22);
this.clearToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
this.clearToolStripMenuItem.Text = "Clear";
this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click);
//
// removeAllXToolStripMenuItem
//
this.removeAllXToolStripMenuItem.Name = "removeAllXToolStripMenuItem";
this.removeAllXToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
this.removeAllXToolStripMenuItem.Text = "RemoveAllX";
this.removeAllXToolStripMenuItem.Click += new System.EventHandler(this.removeAllXToolStripMenuItem_Click);
//
// tabPageAllFixes
//
this.tabPageAllFixes.Controls.Add(this.listBoxLog);
@ -1787,7 +1797,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
| System.Windows.Forms.AnchorStyles.Right)));
this.textBoxCurrentText.BackColor = System.Drawing.SystemColors.WindowFrame;
this.textBoxCurrentText.ContextMenuStrip = this.contextMenuStripTextBox;
this.textBoxCurrentText.CurrentLanguage = null;
this.textBoxCurrentText.CurrentLanguage = "";
this.textBoxCurrentText.CurrentLineIndex = 0;
this.textBoxCurrentText.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.textBoxCurrentText.HideSelection = true;
@ -2164,5 +2174,6 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
private System.Windows.Forms.ToolStripMenuItem italicToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem underlineToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem imageWithTimeCodeInFileNameToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeAllXToolStripMenuItem;
}
}

View File

@ -565,7 +565,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
vobSubToolStripMenuItem.Text = LanguageSettings.Current.Main.Menu.File.ExportVobSub;
bDNXMLToolStripMenuItem.Text = LanguageSettings.Current.Main.Menu.File.ExportBdnXml;
bluraySupToolStripMenuItem.Text = LanguageSettings.Current.Main.Menu.File.ExportBluRaySup;
imageWithTimeCodeInFileNameToolStripMenuItem.Text = language.ImagesWithTimeCodesInFileName;
imageWithTimeCodeInFileNameToolStripMenuItem.Text = language.ImagesWithTimeCodesInFileName;
toolStripMenuItemClearFixes.Text = LanguageSettings.Current.DvdSubRip.Clear;
toolStripMenuItemClearGuesses.Text = LanguageSettings.Current.DvdSubRip.Clear;
@ -9939,7 +9939,7 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
Application.DoEvents();
}
}
finally
finally
{
Cursor = Cursors.Default;
_ocrMethodIndex = oldOcrIndex;
@ -9952,5 +9952,63 @@ namespace Nikse.SubtitleEdit.Forms.Ocr
f.ShowDialog(this);
}
}
private string GetUnknownComboBoxWord(string s)
{
if (s == null || !s.Contains(':'))
{
return string.Empty;
}
return s.Remove(0, s.IndexOf(':') + 1).Trim();
}
private void removeAllXToolStripMenuItem_Click(object sender, EventArgs e)
{
var word = GetUnknownComboBoxWord(listBoxUnknownWords.Text);
if (string.IsNullOrEmpty(word))
{
return;
}
var unkownWords = new List<LogItem>();
foreach (var item in listBoxUnknownWords.Items)
{
var raw = item as LogItem;
if (raw == null)
{
continue;
}
if (!word.Equals(raw.Text, StringComparison.OrdinalIgnoreCase))
{
unkownWords.Add(raw);
}
}
listBoxUnknownWords.BeginUpdate();
listBoxUnknownWords.Items.Clear();
listBoxUnknownWords.Items.AddRange(unkownWords.Cast<object>().ToArray());
listBoxUnknownWords.EndUpdate();
if (listBoxUnknownWords.Items.Count > 0)
{
listBoxUnknownWords.SelectedIndex = 0;
}
}
private void contextMenuStripUnknownWords_Opening(object sender, CancelEventArgs e)
{
var word = GetUnknownComboBoxWord(listBoxUnknownWords.Text);
if (string.IsNullOrEmpty(word))
{
removeAllXToolStripMenuItem.Visible = false;
}
else
{
removeAllXToolStripMenuItem.Visible = true;
removeAllXToolStripMenuItem.Text = string.Format(LanguageSettings.Current.Settings.RemoveX.RemoveChar('?'), word);
}
}
}
}