mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Allow "Typewriter effect" for multiple lines - thx andradadad :)
Fix #3843
This commit is contained in:
parent
8a5e2a6711
commit
aa67b7a9cf
@ -272,10 +272,10 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
return duration / text.Length;
|
||||
}
|
||||
|
||||
private void MakeAnimation()
|
||||
public void MakeAnimation()
|
||||
{
|
||||
TypewriterParagraphs = new List<Paragraph>();
|
||||
double duration = _paragraph.Duration.TotalMilliseconds - ((double)numericUpDownDelay.Value * TimeCode.BaseUnit);
|
||||
double duration = _paragraph.Duration.TotalMilliseconds - (double)numericUpDownDelay.Value * TimeCode.BaseUnit;
|
||||
double stepsLength = CalculateStepLength(_paragraph.Text, duration);
|
||||
|
||||
double startMilliseconds;
|
||||
|
@ -7484,7 +7484,6 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
mergeAfterToolStripMenuItem.Visible = false;
|
||||
mergeBeforeToolStripMenuItem.Visible = false;
|
||||
splitLineToolStripMenuItem.Visible = false;
|
||||
typeEffectToolStripMenuItem.Visible = false;
|
||||
toolStripMenuItemMergeDialog.Visible = true;
|
||||
}
|
||||
else if (SubtitleListview1.SelectedItems.Count >= 2)
|
||||
@ -7496,7 +7495,6 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
splitLineToolStripMenuItem.Visible = false;
|
||||
mergeAfterToolStripMenuItem.Visible = false;
|
||||
mergeBeforeToolStripMenuItem.Visible = false;
|
||||
typeEffectToolStripMenuItem.Visible = false;
|
||||
toolStripSeparator7.Visible = false;
|
||||
|
||||
if (SubtitleListview1.SelectedItems.Count > 25)
|
||||
@ -7527,7 +7525,6 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
if (formatType != typeof(SubRip))
|
||||
{
|
||||
karokeeEffectToolStripMenuItem.Visible = false;
|
||||
toolStripSeparatorAdvancedFunctions.Visible = SubtitleListview1.SelectedItems.Count == 1 && noNetWorkSession;
|
||||
}
|
||||
}
|
||||
@ -11364,19 +11361,31 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
if (typewriter.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
MakeHistoryForUndo(_language.BeforeTypeWriterEffect);
|
||||
int lastSelectedIndex = SubtitleListview1.SelectedItems[0].Index;
|
||||
int index = lastSelectedIndex;
|
||||
_subtitle.Paragraphs.RemoveAt(index);
|
||||
bool isframeBased = GetCurrentSubtitleFormat().IsFrameBased;
|
||||
foreach (var p in typewriter.TypewriterParagraphs)
|
||||
int lastSelectedIndex = SubtitleListview1.SelectedItems[0].Index;
|
||||
int i = SubtitleListview1.SelectedItems.Count - 1;
|
||||
while (i >= 0)
|
||||
{
|
||||
if (isframeBased)
|
||||
var item = SubtitleListview1.SelectedItems[i];
|
||||
var p = _subtitle.GetParagraphOrDefault(item.Index);
|
||||
if (p != null)
|
||||
{
|
||||
p.CalculateFrameNumbersFromTimeCodes(CurrentFrameRate);
|
||||
p.CalculateTimeCodesFromFrameNumbers(CurrentFrameRate);
|
||||
typewriter.Initialize(p);
|
||||
typewriter.MakeAnimation();
|
||||
int index = item.Index;
|
||||
_subtitle.Paragraphs.RemoveAt(index);
|
||||
foreach (var tp in typewriter.TypewriterParagraphs)
|
||||
{
|
||||
if (isframeBased)
|
||||
{
|
||||
tp.CalculateFrameNumbersFromTimeCodes(CurrentFrameRate);
|
||||
tp.CalculateTimeCodesFromFrameNumbers(CurrentFrameRate);
|
||||
}
|
||||
_subtitle.Paragraphs.Insert(index, tp);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
_subtitle.Paragraphs.Insert(index, p);
|
||||
index++;
|
||||
i--;
|
||||
}
|
||||
_subtitle.Renumber();
|
||||
_subtitleListViewIndex = -1;
|
||||
|
Loading…
Reference in New Issue
Block a user