mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 06:22:38 +01:00
Fix crash in "Point sync" - thx Kari :)
This commit is contained in:
parent
61acd35365
commit
92782269b3
@ -23,7 +23,6 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
|
||||
private string _subtitleFileName;
|
||||
private string _videoFileName;
|
||||
private int _audioTrackNumber;
|
||||
private Subtitle _subtitle;
|
||||
private Subtitle _originalSubtitle;
|
||||
@ -32,15 +31,9 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
private readonly Keys _mainGeneralGoToNextSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralGoToNextSubtitle);
|
||||
private readonly Keys _mainGeneralGoToPrevSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralGoToPrevSubtitle);
|
||||
|
||||
public string VideoFileName
|
||||
{
|
||||
get { return _videoFileName; }
|
||||
}
|
||||
public string VideoFileName { get; private set; }
|
||||
|
||||
public Subtitle FixedSubtitle
|
||||
{
|
||||
get { return _subtitle; }
|
||||
}
|
||||
public Subtitle FixedSubtitle => _subtitle;
|
||||
|
||||
public SyncPointsSync()
|
||||
{
|
||||
@ -76,7 +69,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
_subtitle = new Subtitle(subtitle);
|
||||
_originalSubtitle = subtitle;
|
||||
_subtitleFileName = subtitleFileName;
|
||||
_videoFileName = videoFileName;
|
||||
VideoFileName = videoFileName;
|
||||
_audioTrackNumber = audioTrackNumber;
|
||||
SubtitleListview1.Fill(subtitle);
|
||||
if (SubtitleListview1.Items.Count > 0)
|
||||
@ -115,7 +108,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
_otherSubtitle = otherSubtitle;
|
||||
_originalSubtitle = subtitle;
|
||||
_subtitleFileName = subtitleFileName;
|
||||
_videoFileName = videoFileName;
|
||||
VideoFileName = videoFileName;
|
||||
_audioTrackNumber = audioTrackNumber;
|
||||
SubtitleListview1.Fill(subtitle);
|
||||
if (SubtitleListview1.Items.Count > 0)
|
||||
@ -137,7 +130,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
MinimumSize = new Size(Width - 50, MinimumSize.Height);
|
||||
}
|
||||
|
||||
private void RefreshSynchronizationPointsUI()
|
||||
private void RefreshSynchronizationPointsUi()
|
||||
{
|
||||
buttonApplySync.Enabled = _synchronizationPoints.Count > 0;
|
||||
labelNoOfSyncPoints.Text = string.Format(Configuration.Settings.Language.PointSync.SyncPointsX, _synchronizationPoints.Count);
|
||||
@ -148,8 +141,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
{
|
||||
if (_synchronizationPoints.ContainsKey(i))
|
||||
{
|
||||
var p = new Paragraph();
|
||||
p.StartTime.TotalMilliseconds = _synchronizationPoints[i].TotalMilliseconds;
|
||||
var p = new Paragraph { StartTime = { TotalMilliseconds = _synchronizationPoints[i].TotalMilliseconds } };
|
||||
p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + _subtitle.Paragraphs[i].Duration.TotalMilliseconds;
|
||||
SubtitleListview1.SetStartTimeAndDuration(i, p, _subtitle.GetParagraphOrDefault(i + 1), _subtitle.GetParagraphOrDefault(i - 1));
|
||||
|
||||
@ -180,18 +172,18 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
using (var getTime = new SetSyncPoint())
|
||||
{
|
||||
int index = SubtitleListview1.SelectedItems[0].Index;
|
||||
getTime.Initialize(_subtitle, _subtitleFileName, index, _videoFileName, _audioTrackNumber);
|
||||
getTime.Initialize(_subtitle, _subtitleFileName, index, VideoFileName, _audioTrackNumber);
|
||||
if (getTime.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
if (_synchronizationPoints.ContainsKey(index))
|
||||
_synchronizationPoints[index] = getTime.SynchronizationPoint;
|
||||
else
|
||||
_synchronizationPoints.Add(index, getTime.SynchronizationPoint);
|
||||
RefreshSynchronizationPointsUI();
|
||||
_videoFileName = getTime.VideoFileName;
|
||||
RefreshSynchronizationPointsUi();
|
||||
VideoFileName = getTime.VideoFileName;
|
||||
}
|
||||
Activate();
|
||||
_videoFileName = getTime.VideoFileName;
|
||||
VideoFileName = getTime.VideoFileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -209,7 +201,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
_synchronizationPoints[index] = TimeSpan.FromMilliseconds(_otherSubtitle.Paragraphs[indexOther].StartTime.TotalMilliseconds);
|
||||
else
|
||||
_synchronizationPoints.Add(index, TimeSpan.FromMilliseconds(_otherSubtitle.Paragraphs[indexOther].StartTime.TotalMilliseconds));
|
||||
RefreshSynchronizationPointsUI();
|
||||
RefreshSynchronizationPointsUi();
|
||||
}
|
||||
SetSyncFactorLabel();
|
||||
}
|
||||
@ -221,7 +213,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
int index = SubtitleListview1.SelectedItems[0].Index;
|
||||
if (_synchronizationPoints.ContainsKey(index))
|
||||
_synchronizationPoints.Remove(index);
|
||||
RefreshSynchronizationPointsUI();
|
||||
RefreshSynchronizationPointsUi();
|
||||
}
|
||||
SetSyncFactorLabel();
|
||||
}
|
||||
@ -300,7 +292,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
double subStart = _originalSubtitle.Paragraphs[_synchronizationPoints.First().Key].StartTime.TotalMilliseconds / TimeCode.BaseUnit;
|
||||
|
||||
var adjustment = startPos - subStart;
|
||||
labelAdjustFactor.Text = string.Format("{0:+0.000;-0.000}", adjustment);
|
||||
labelAdjustFactor.Text = $"{adjustment:+0.000;-0.000}";
|
||||
}
|
||||
else if (_synchronizationPoints.Count == 2)
|
||||
{
|
||||
@ -319,7 +311,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
// adjust to starting position
|
||||
double adjust = startPos - subStart * factor;
|
||||
|
||||
labelAdjustFactor.Text = string.Format("*{0:0.000}, {1:+0.000;-0.000}", factor, adjust);
|
||||
labelAdjustFactor.Text = $"*{factor:0.000}, {adjust:+0.000;-0.000}";
|
||||
}
|
||||
}
|
||||
|
||||
@ -334,7 +326,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
double realDiff = endPos - startPos;
|
||||
|
||||
// speed factor
|
||||
double factor = realDiff / subDiff;
|
||||
double factor = Math.Abs(subDiff) < 0.001 ? 1 : realDiff / subDiff;
|
||||
|
||||
// adjust to starting position
|
||||
double adjust = startPos - subStart * factor;
|
||||
@ -360,7 +352,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
AdjustViaShowEarlierLater(kvp.Key, kvp.Value.TotalMilliseconds);
|
||||
_synchronizationPoints = new SortedDictionary<int, TimeSpan>();
|
||||
SubtitleListview1.Fill(_subtitle);
|
||||
RefreshSynchronizationPointsUI();
|
||||
RefreshSynchronizationPointsUi();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -384,7 +376,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
if (i == syncIndices.Count - 1)
|
||||
maxIndex = _subtitle.Paragraphs.Count;
|
||||
else
|
||||
maxIndex = syncIndices[i]; // maxIndex = syncIndices[i + 1];
|
||||
maxIndex = syncIndices[i];
|
||||
|
||||
Sync(startIndex, endIndex, minIndex, maxIndex, _synchronizationPoints[startIndex].TotalMilliseconds / TimeCode.BaseUnit, _synchronizationPoints[endIndex].TotalMilliseconds / TimeCode.BaseUnit);
|
||||
|
||||
@ -392,7 +384,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
SubtitleListview1.Fill(_subtitle);
|
||||
RefreshSynchronizationPointsUI();
|
||||
RefreshSynchronizationPointsUi();
|
||||
}
|
||||
|
||||
private void AdjustViaShowEarlierLater(int index, double newTotalMilliseconds)
|
||||
|
Loading…
Reference in New Issue
Block a user