This commit is contained in:
niksedk 2022-09-22 18:38:11 +02:00
parent d0e92212ea
commit a83eb5cb2e
6 changed files with 51 additions and 9 deletions

View File

@ -2175,6 +2175,8 @@ $HorzAlign = Center
public string GeneralMergeSelectedLinesAndUnbreakCjk { get; set; }
public string GeneralMergeSelectedLinesOnlyFirstText { get; set; }
public string GeneralMergeSelectedLinesBilingual { get; set; }
public string GeneralMergeWithPreviousBilingual { get; set; }
public string GeneralMergeWithNextBilingual { get; set; }
public string GeneralMergeOriginalAndTranslation { get; set; }
public string GeneralToggleTranslationMode { get; set; }
public string GeneralSwitchOriginalAndTranslation { get; set; }
@ -7784,6 +7786,18 @@ $HorzAlign = Center
shortcuts.GeneralMergeSelectedLinesBilingual = subNode.InnerText;
}
subNode = node.SelectSingleNode("GeneralMergeWithPreviousBilingual");
if (subNode != null)
{
shortcuts.GeneralMergeWithPreviousBilingual = subNode.InnerText;
}
subNode = node.SelectSingleNode("GeneralMergeWithNextBilingual");
if (subNode != null)
{
shortcuts.GeneralMergeWithNextBilingual = subNode.InnerText;
}
subNode = node.SelectSingleNode("GeneralMergeWithNext");
if (subNode != null)
{
@ -10765,6 +10779,8 @@ $HorzAlign = Center
textWriter.WriteElementString("GeneralMergeSelectedLinesAndUnbreakCjk", shortcuts.GeneralMergeSelectedLinesAndUnbreakCjk);
textWriter.WriteElementString("GeneralMergeSelectedLinesOnlyFirstText", shortcuts.GeneralMergeSelectedLinesOnlyFirstText);
textWriter.WriteElementString("GeneralMergeSelectedLinesBilingual", shortcuts.GeneralMergeSelectedLinesBilingual);
textWriter.WriteElementString("GeneralMergeWithPreviousBilingual", shortcuts.GeneralMergeWithPreviousBilingual);
textWriter.WriteElementString("GeneralMergeWithNextBilingual", shortcuts.GeneralMergeWithNextBilingual);
textWriter.WriteElementString("GeneralMergeWithNext", shortcuts.GeneralMergeWithNext);
textWriter.WriteElementString("GeneralMergeWithPrevious", shortcuts.GeneralMergeWithPrevious);
textWriter.WriteElementString("GeneralMergeWithPreviousAndUnbreak", shortcuts.GeneralMergeWithPreviousAndUnbreak);

View File

@ -11903,9 +11903,9 @@ namespace Nikse.SubtitleEdit.Forms
}
}
private void MergeSelectedLinesBilingual()
private void MergeSelectedLinesBilingual(int[] selectedIndices)
{
if (_subtitle.Paragraphs.Count > 0 && SubtitleListview1.SelectedItems.Count > 1)
if (_subtitle.Paragraphs.Count > 0 && selectedIndices.Length > 1)
{
var sb1 = new StringBuilder();
var sb2 = new StringBuilder();
@ -11914,7 +11914,7 @@ namespace Nikse.SubtitleEdit.Forms
int firstIndex = 0;
double durationMilliseconds = 0;
int next = 0;
foreach (int index in SubtitleListview1.SelectedIndices)
foreach (var index in selectedIndices)
{
if (first)
{
@ -11936,7 +11936,7 @@ namespace Nikse.SubtitleEdit.Forms
var arr = _subtitle.Paragraphs[index].Text.Trim().SplitToLines();
if (arr.Count > 0)
{
int mid = (int)(arr.Count / 2);
int mid = arr.Count / 2;
for (var i = 0; i < arr.Count; i++)
{
var l = arr[i];
@ -11963,10 +11963,10 @@ namespace Nikse.SubtitleEdit.Forms
MakeHistoryForUndo(_language.BeforeMergeLines);
var currentParagraph = _subtitle.Paragraphs[firstIndex];
string text1 = sb1.ToString().TrimEnd();
string text2 = sb2.ToString().TrimEnd();
string text1 = sb1.ToString().Trim();
string text2 = sb2.ToString().Trim();
currentParagraph.Text = text1 + Environment.NewLine + text2;
currentParagraph.Text = (text1 + Environment.NewLine + text2).Trim();
//display time
currentParagraph.EndTime.TotalMilliseconds = currentParagraph.StartTime.TotalMilliseconds + durationMilliseconds;
@ -11985,7 +11985,7 @@ namespace Nikse.SubtitleEdit.Forms
}
else
{
for (int i = deleteIndices.Count - 1; i >= 0; i--)
for (var i = deleteIndices.Count - 1; i >= 0; i--)
{
_subtitle.Paragraphs.RemoveAt(deleteIndices[i]);
}
@ -16712,7 +16712,23 @@ namespace Nikse.SubtitleEdit.Forms
if (_subtitle.Paragraphs.Count > 0 && SubtitleListview1.SelectedItems.Count >= 1 && SubtitleListview1.SelectedItems.Count < 10)
{
e.SuppressKeyPress = true;
MergeSelectedLinesBilingual();
MergeSelectedLinesBilingual(SubtitleListview1.GetSelectedIndices());
}
}
else if (_shortcuts.MainGeneralMergeWithPreviousBilingual == e.KeyData)
{
if (_subtitle.Paragraphs.Count > 1 && SubtitleListview1.SelectedItems.Count >= 1)
{
e.SuppressKeyPress = true;
MergeSelectedLinesBilingual(new int[] { SubtitleListview1.SelectedItems[0].Index - 1, SubtitleListview1.SelectedItems[0].Index });
}
}
else if (_shortcuts.MainGeneralMergeWithNextBilingual == e.KeyData)
{
if (_subtitle.Paragraphs.Count > 1 && SubtitleListview1.SelectedItems.Count >= 1)
{
e.SuppressKeyPress = true;
MergeSelectedLinesBilingual(new int[] { SubtitleListview1.SelectedItems[0].Index, SubtitleListview1.SelectedItems[0].Index + 1 });
}
}
else if (_shortcuts.MainGeneralMergeSelectedLinesOnlyFirstText == e.KeyData)

View File

@ -1241,6 +1241,8 @@ namespace Nikse.SubtitleEdit.Forms.Options
AddNode(generalNode, language.MergeSelectedLinesAndUnbreakCjk, nameof(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesAndUnbreakCjk));
AddNode(generalNode, language.MergeSelectedLinesOnlyFirstText, nameof(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesOnlyFirstText));
AddNode(generalNode, language.MergeSelectedLinesBilingual, nameof(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesBilingual));
AddNode(generalNode, language.MergeWithPreviousBilingual, nameof(Configuration.Settings.Shortcuts.GeneralMergeWithPreviousBilingual));
AddNode(generalNode, language.MergeSelectedLinesBilingual, nameof(Configuration.Settings.Shortcuts.GeneralMergeWithNextBilingual));
AddNode(generalNode, language.MergeOriginalAndTranslation, nameof(Configuration.Settings.Shortcuts.GeneralMergeOriginalAndTranslation));
AddNode(generalNode, language.ToggleTranslationMode, nameof(Configuration.Settings.Shortcuts.GeneralToggleTranslationMode));
AddNode(generalNode, language.SwitchOriginalAndTranslation, nameof(Configuration.Settings.Shortcuts.GeneralSwitchOriginalAndTranslation));

View File

@ -2860,6 +2860,8 @@ can edit in same subtitle file (collaboration)",
MergeSelectedLinesAndUnbreakCjk = "Merge selected lines and unbreak without space (CJK)",
MergeSelectedLinesOnlyFirstText = "Merge selected lines, keep only first non-empty text",
MergeSelectedLinesBilingual = "Merge selected lines bilingual",
MergeWithPreviousBilingual = "Merge with prevous bilingual",
MergeWithNextBilingual = "Merge with next bilingual",
SplitSelectedLineBilingual = "Split selected line bilingual",
ToggleTranslationMode = "Toggle translator mode",
SwitchOriginalAndTranslation = "Switch original and translation",

View File

@ -2711,6 +2711,8 @@
public string MergeSelectedLinesAndUnbreakCjk { get; set; }
public string MergeSelectedLinesOnlyFirstText { get; set; }
public string MergeSelectedLinesBilingual { get; set; }
public string MergeWithPreviousBilingual { get; set; }
public string MergeWithNextBilingual { get; set; }
public string SplitSelectedLineBilingual { get; set; }
public string ToggleTranslationMode { get; set; }
public string SwitchOriginalAndTranslation { get; set; }

View File

@ -12,6 +12,8 @@ namespace Nikse.SubtitleEdit.Logic
public Keys MainGeneralMergeSelectedLinesAndUnbreak { get; set; }
public Keys MainGeneralMergeSelectedLinesAndUnbreakNoSpace { get; set; }
public Keys MainGeneralMergeSelectedLinesBilingual { get; set; }
public Keys MainGeneralMergeWithPreviousBilingual { get; set; }
public Keys MainGeneralMergeWithNextBilingual { get; set; }
public Keys MainGeneralMergeSelectedLinesOnlyFirstText { get; set; }
public Keys MainGeneralToggleTranslationMode { get; set; }
public Keys MainGeneralSwitchTranslationAndOriginal { get; set; }
@ -247,6 +249,8 @@ namespace Nikse.SubtitleEdit.Logic
MainGeneralMergeSelectedLinesAndUnbreak = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesAndUnbreak);
MainGeneralMergeSelectedLinesAndUnbreakNoSpace = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesAndUnbreakCjk);
MainGeneralMergeSelectedLinesBilingual = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesBilingual);
MainGeneralMergeWithPreviousBilingual = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralMergeWithPreviousBilingual);
MainGeneralMergeWithNextBilingual = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralMergeWithNextBilingual);
MainGeneralMergeSelectedLinesOnlyFirstText = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralMergeSelectedLinesOnlyFirstText);
MainGeneralToggleTranslationMode = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralToggleTranslationMode);
MainGeneralSwitchTranslationAndOriginal = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralSwitchOriginalAndTranslation);