This commit is contained in:
niksedk 2023-11-01 15:42:43 +01:00
parent cf02d79583
commit 08bf6ee69a
2 changed files with 28 additions and 8 deletions

View File

@ -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);

View File

@ -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)
{