mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 14:32:35 +01:00
Work on #7560
This commit is contained in:
parent
cf02d79583
commit
08bf6ee69a
@ -170,14 +170,29 @@ namespace Nikse.SubtitleEdit.Core.Common
|
||||
if (ts.Minutes == 0 && ts.Hours == 0 && ts.Days == 0)
|
||||
{
|
||||
s = $"{ts.Seconds:0}{decimalSeparator}{ts.Milliseconds:000}";
|
||||
|
||||
if (s == $"0{decimalSeparator}000")
|
||||
{
|
||||
return s; // no sign
|
||||
}
|
||||
}
|
||||
else if (ts.Hours == 0 && ts.Days == 0)
|
||||
{
|
||||
s = $"{ts.Minutes:0}:{ts.Seconds:00}{decimalSeparator}{ts.Milliseconds:000}";
|
||||
|
||||
if (s == $"0:00{decimalSeparator}000")
|
||||
{
|
||||
return s; // no sign
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
s = $"{ts.Hours + ts.Days * 24:0}:{ts.Minutes:00}:{ts.Seconds:00}{decimalSeparator}{ts.Milliseconds:000}";
|
||||
|
||||
if (s == $"0:00:00{decimalSeparator}000")
|
||||
{
|
||||
return s; // no sign
|
||||
}
|
||||
}
|
||||
|
||||
return PrefixSign(s);
|
||||
|
@ -18565,15 +18565,15 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
if (SubtitleListview1.SelectedItems.Count == 1)
|
||||
{
|
||||
double videoPosition = mediaPlayer.CurrentPosition;
|
||||
double videoPositionMs = mediaPlayer.CurrentPosition * 1000.0;
|
||||
if (!mediaPlayer.IsPaused)
|
||||
{
|
||||
videoPosition -= Configuration.Settings.General.SetStartEndHumanDelay / TimeCode.BaseUnit;
|
||||
videoPositionMs -= Configuration.Settings.General.SetStartEndHumanDelay / 1000.0;
|
||||
}
|
||||
|
||||
int index = SubtitleListview1.SelectedItems[0].Index;
|
||||
var p = _subtitle.Paragraphs[index];
|
||||
var videoTimeCode = TimeCode.FromSeconds(videoPosition);
|
||||
var videoTimeCode = new TimeCode(videoPositionMs);
|
||||
var duration = videoTimeCode.TotalMilliseconds - p.StartTime.TotalMilliseconds - MinGapBetweenLines;
|
||||
if (duration > 0 &&
|
||||
duration <= 60_000)
|
||||
@ -18588,7 +18588,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
SubtitleListview1.SetStartTimeAndDuration(index, _subtitle.Paragraphs[index], _subtitle.GetParagraphOrDefault(index + 1), _subtitle.GetParagraphOrDefault(index - 1));
|
||||
SetDurationInSeconds(_subtitle.Paragraphs[index].DurationTotalSeconds);
|
||||
ButtonInsertNewTextClick(null, null);
|
||||
InsertNewParagraphAtPosition(videoPositionMs);
|
||||
UpdateSourceView();
|
||||
}
|
||||
}
|
||||
@ -24400,13 +24400,18 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
|
||||
var tc = new TimeCode(videoPositionInMilliseconds);
|
||||
MakeHistoryForUndo(_language.BeforeInsertSubtitleAtVideoPosition + " " + tc);
|
||||
|
||||
MakeHistoryForUndo(_language.BeforeInsertSubtitleAtVideoPosition + " " + tc);
|
||||
return InsertNewParagraphAtPosition(videoPositionInMilliseconds);
|
||||
}
|
||||
|
||||
private Paragraph InsertNewParagraphAtPosition(double PositionInMilliseconds)
|
||||
{
|
||||
// find index where to insert
|
||||
int index = 0;
|
||||
foreach (var p in _subtitle.Paragraphs)
|
||||
{
|
||||
if (p.StartTime.TotalMilliseconds > videoPositionInMilliseconds)
|
||||
if (p.StartTime.TotalMilliseconds > PositionInMilliseconds)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -24415,7 +24420,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
|
||||
// prevent overlap
|
||||
var endTotalMilliseconds = videoPositionInMilliseconds + Configuration.Settings.General.NewEmptyDefaultMs;
|
||||
var endTotalMilliseconds = PositionInMilliseconds + Configuration.Settings.General.NewEmptyDefaultMs;
|
||||
var next = _subtitle.GetParagraphOrDefault(index);
|
||||
if (next != null)
|
||||
{
|
||||
@ -24426,7 +24431,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
|
||||
// create and insert
|
||||
var newParagraph = new Paragraph(string.Empty, videoPositionInMilliseconds, endTotalMilliseconds);
|
||||
var newParagraph = new Paragraph(string.Empty, PositionInMilliseconds, endTotalMilliseconds);
|
||||
SetStyleForNewParagraph(newParagraph, index);
|
||||
if (_networkSession != null)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user