Fix style when add subtitle with F9 in create mode - thx OmrSi :)

Fix  #3035
This commit is contained in:
Nikolaj Olsson 2018-08-17 06:28:53 +02:00
parent f3ec11f54c
commit ebc3bc75c7

View File

@ -7441,19 +7441,6 @@ namespace Nikse.SubtitleEdit.Forms
private void InsertBefore()
{
var format = GetCurrentSubtitleFormat();
bool useExtraForStyle = format.HasStyleSupport;
var styles = new List<string>();
if (format.GetType() == typeof(AdvancedSubStationAlpha) || format.GetType() == typeof(SubStationAlpha))
styles = AdvancedSubStationAlpha.GetStylesFromHeader(_subtitle.Header);
else if (format.GetType() == typeof(TimedText10) || format.GetType() == typeof(ItunesTimedText))
styles = TimedText10.GetStylesFromHeader(_subtitle.Header);
else if (format.GetType() == typeof(Sami) || format.GetType() == typeof(SamiModern))
styles = Sami.GetStylesFromHeader(_subtitle.Header);
string style = "Default";
if (styles.Count > 0)
style = styles[0];
MakeHistoryForUndo(_language.BeforeInsertLine);
int firstSelectedIndex = 0;
@ -7465,23 +7452,8 @@ namespace Nikse.SubtitleEdit.Forms
addMilliseconds = 1;
var newParagraph = new Paragraph();
if (useExtraForStyle)
{
newParagraph.Extra = style;
if (format.GetType() == typeof(TimedText10) || format.GetType() == typeof(ItunesTimedText))
{
if (styles.Count > 0)
newParagraph.Style = style;
var c = _subtitle.GetParagraphOrDefault(firstSelectedIndex);
if (c != null)
{
newParagraph.Style = c.Style;
newParagraph.Region = c.Region;
newParagraph.Language = c.Language;
}
newParagraph.Extra = TimedText10.SetExtra(newParagraph);
}
}
SetStyleForNewParagraph(newParagraph, firstSelectedIndex);
var prev = _subtitle.GetParagraphOrDefault(firstSelectedIndex - 1);
var next = _subtitle.GetParagraphOrDefault(firstSelectedIndex);
@ -7559,20 +7531,6 @@ namespace Nikse.SubtitleEdit.Forms
private void InsertAfter()
{
var format = GetCurrentSubtitleFormat();
bool useExtraForStyle = format.HasStyleSupport;
var formatType = format.GetType();
var styles = new List<string>();
if (formatType == typeof(AdvancedSubStationAlpha) || formatType == typeof(SubStationAlpha))
styles = AdvancedSubStationAlpha.GetStylesFromHeader(_subtitle.Header);
else if (formatType == typeof(TimedText10) || formatType == typeof(ItunesTimedText))
styles = TimedText10.GetStylesFromHeader(_subtitle.Header);
else if (formatType == typeof(Sami) || formatType == typeof(SamiModern))
styles = Sami.GetStylesFromHeader(_subtitle.Header);
string style = "Default";
if (styles.Count > 0)
style = styles[0];
MakeHistoryForUndo(_language.BeforeInsertLine);
int firstSelectedIndex = 0;
@ -7580,23 +7538,8 @@ namespace Nikse.SubtitleEdit.Forms
firstSelectedIndex = SubtitleListview1.SelectedItems[0].Index + 1;
var newParagraph = new Paragraph();
if (useExtraForStyle)
{
newParagraph.Extra = style;
if (format.GetType() == typeof(TimedText10) || format.GetType() == typeof(ItunesTimedText))
{
if (styles.Count > 0)
newParagraph.Style = style;
var c = _subtitle.GetParagraphOrDefault(FirstSelectedIndex);
if (c != null)
{
newParagraph.Style = c.Style;
newParagraph.Region = c.Region;
newParagraph.Language = c.Language;
}
newParagraph.Extra = TimedText10.SetExtra(newParagraph);
}
}
SetStyleForNewParagraph(newParagraph, firstSelectedIndex);
var prev = _subtitle.GetParagraphOrDefault(firstSelectedIndex - 1);
var next = _subtitle.GetParagraphOrDefault(firstSelectedIndex);
@ -7659,6 +7602,42 @@ namespace Nikse.SubtitleEdit.Forms
ShowStatus(_language.LineInserted);
}
private void SetStyleForNewParagraph(Paragraph newParagraph, int nearestIndex)
{
var format = GetCurrentSubtitleFormat();
bool useExtraForStyle = format.HasStyleSupport;
var formatType = format.GetType();
var styles = new List<string>();
if (formatType == typeof(AdvancedSubStationAlpha) || formatType == typeof(SubStationAlpha))
styles = AdvancedSubStationAlpha.GetStylesFromHeader(_subtitle.Header);
else if (formatType == typeof(TimedText10) || formatType == typeof(ItunesTimedText))
styles = TimedText10.GetStylesFromHeader(_subtitle.Header);
else if (formatType == typeof(Sami) || formatType == typeof(SamiModern))
styles = Sami.GetStylesFromHeader(_subtitle.Header);
string style = "Default";
if (styles.Count > 0)
style = styles[0];
if (useExtraForStyle)
{
newParagraph.Extra = style;
if (format.GetType() == typeof(TimedText10) || format.GetType() == typeof(ItunesTimedText))
{
if (styles.Count > 0)
newParagraph.Style = style;
var c = _subtitle.GetParagraphOrDefault(nearestIndex);
if (c != null)
{
newParagraph.Style = c.Style;
newParagraph.Region = c.Region;
newParagraph.Language = c.Language;
}
newParagraph.Extra = TimedText10.SetExtra(newParagraph);
}
}
}
private void SubtitleListView1SelectedIndexChange()
{
StopAutoDuration();
@ -15664,6 +15643,7 @@ namespace Nikse.SubtitleEdit.Forms
// create and insert
var newParagraph = new Paragraph(string.Empty, videoPositionInMilliseconds, videoPositionInMilliseconds + Configuration.Settings.General.NewEmptyDefaultMs);
SetStyleForNewParagraph(newParagraph, index);
if (GetCurrentSubtitleFormat().IsFrameBased)
{
newParagraph.CalculateFrameNumbersFromTimeCodes(CurrentFrameRate);