Fixed crash in Compare when loading right sub first - thx Red Herring :)

also some minor refact
This commit is contained in:
niksedk 2015-08-31 16:47:56 +02:00
parent ba9e6f035a
commit d9e1e386ac
2 changed files with 26 additions and 15 deletions

View File

@ -71,7 +71,7 @@ namespace Nikse.SubtitleEdit.Forms
// labelSubtitle2
//
this.labelSubtitle2.AutoSize = true;
this.labelSubtitle2.Location = new System.Drawing.Point(491, 32);
this.labelSubtitle2.Location = new System.Drawing.Point(491, 36);
this.labelSubtitle2.Name = "labelSubtitle2";
this.labelSubtitle2.Size = new System.Drawing.Size(30, 13);
this.labelSubtitle2.TabIndex = 3;
@ -81,7 +81,7 @@ namespace Nikse.SubtitleEdit.Forms
// labelSubtitle1
//
this.labelSubtitle1.AutoSize = true;
this.labelSubtitle1.Location = new System.Drawing.Point(9, 32);
this.labelSubtitle1.Location = new System.Drawing.Point(9, 36);
this.labelSubtitle1.Name = "labelSubtitle1";
this.labelSubtitle1.Size = new System.Drawing.Size(30, 13);
this.labelSubtitle1.TabIndex = 2;
@ -92,7 +92,7 @@ namespace Nikse.SubtitleEdit.Forms
//
this.buttonOpenSubtitle1.Location = new System.Drawing.Point(9, 8);
this.buttonOpenSubtitle1.Name = "buttonOpenSubtitle1";
this.buttonOpenSubtitle1.Size = new System.Drawing.Size(24, 21);
this.buttonOpenSubtitle1.Size = new System.Drawing.Size(28, 22);
this.buttonOpenSubtitle1.TabIndex = 0;
this.buttonOpenSubtitle1.Text = "...";
this.buttonOpenSubtitle1.UseVisualStyleBackColor = true;
@ -102,7 +102,7 @@ namespace Nikse.SubtitleEdit.Forms
//
this.buttonOpenSubtitle2.Location = new System.Drawing.Point(491, 8);
this.buttonOpenSubtitle2.Name = "buttonOpenSubtitle2";
this.buttonOpenSubtitle2.Size = new System.Drawing.Size(24, 21);
this.buttonOpenSubtitle2.Size = new System.Drawing.Size(28, 22);
this.buttonOpenSubtitle2.TabIndex = 1;
this.buttonOpenSubtitle2.Text = "...";
this.buttonOpenSubtitle2.UseVisualStyleBackColor = true;
@ -254,10 +254,10 @@ namespace Nikse.SubtitleEdit.Forms
this.subtitleListView2.FullRowSelect = true;
this.subtitleListView2.GridLines = true;
this.subtitleListView2.HideSelection = false;
this.subtitleListView2.Location = new System.Drawing.Point(490, 48);
this.subtitleListView2.Location = new System.Drawing.Point(490, 56);
this.subtitleListView2.Name = "subtitleListView2";
this.subtitleListView2.OwnerDraw = true;
this.subtitleListView2.Size = new System.Drawing.Size(478, 430);
this.subtitleListView2.Size = new System.Drawing.Size(478, 422);
this.subtitleListView2.SubtitleFontBold = false;
this.subtitleListView2.SubtitleFontName = "Tahoma";
this.subtitleListView2.SubtitleFontSize = 8;
@ -278,10 +278,10 @@ namespace Nikse.SubtitleEdit.Forms
this.subtitleListView1.FullRowSelect = true;
this.subtitleListView1.GridLines = true;
this.subtitleListView1.HideSelection = false;
this.subtitleListView1.Location = new System.Drawing.Point(8, 48);
this.subtitleListView1.Location = new System.Drawing.Point(8, 56);
this.subtitleListView1.Name = "subtitleListView1";
this.subtitleListView1.OwnerDraw = true;
this.subtitleListView1.Size = new System.Drawing.Size(476, 430);
this.subtitleListView1.Size = new System.Drawing.Size(476, 422);
this.subtitleListView1.SubtitleFontBold = false;
this.subtitleListView1.SubtitleFontName = "Tahoma";
this.subtitleListView1.SubtitleFontSize = 8;

View File

@ -343,21 +343,23 @@ namespace Nikse.SubtitleEdit.Forms
int columnsAlike = GetColumnsEqualExceptNumber(p1, p2);
if (columnsAlike > 0)
{
if (p1.StartTime.TotalMilliseconds != p2.StartTime.TotalMilliseconds)
const double tolerance = 0.1;
if (Math.Abs(p1.StartTime.TotalMilliseconds - p2.StartTime.TotalMilliseconds) > tolerance)
{
subtitleListView1.SetBackgroundColor(index, Color.LightGreen,
SubtitleListView.ColumnIndexStart);
subtitleListView2.SetBackgroundColor(index, Color.LightGreen,
SubtitleListView.ColumnIndexStart);
}
if (p1.EndTime.TotalMilliseconds != p2.EndTime.TotalMilliseconds)
if (Math.Abs(p1.EndTime.TotalMilliseconds - p2.EndTime.TotalMilliseconds) > tolerance)
{
subtitleListView1.SetBackgroundColor(index, Color.LightGreen,
SubtitleListView.ColumnIndexEnd);
subtitleListView2.SetBackgroundColor(index, Color.LightGreen,
SubtitleListView.ColumnIndexEnd);
}
if (p1.Duration.TotalMilliseconds != p2.Duration.TotalMilliseconds)
if (Math.Abs(p1.Duration.TotalMilliseconds - p2.Duration.TotalMilliseconds) > tolerance)
{
subtitleListView1.SetBackgroundColor(index, Color.LightGreen,
SubtitleListView.ColumnIndexDuration);
@ -470,14 +472,16 @@ namespace Nikse.SubtitleEdit.Forms
if (p1 == null || p2 == null)
return 0;
const double tolerance = 0.1;
int columnsEqual = 0;
if (p1.StartTime.TotalMilliseconds == p2.StartTime.TotalMilliseconds)
if (Math.Abs(p1.StartTime.TotalMilliseconds - p2.StartTime.TotalMilliseconds) < tolerance)
columnsEqual++;
if (p1.EndTime.TotalMilliseconds == p2.EndTime.TotalMilliseconds)
if (Math.Abs(p1.EndTime.TotalMilliseconds - p2.EndTime.TotalMilliseconds) < tolerance)
columnsEqual++;
if (p1.Duration.TotalMilliseconds == p2.Duration.TotalMilliseconds)
if (Math.Abs(p1.Duration.TotalMilliseconds - p2.Duration.TotalMilliseconds) < tolerance)
columnsEqual++;
if (p1.Text.Trim() == p2.Text.Trim())
@ -757,6 +761,9 @@ namespace Nikse.SubtitleEdit.Forms
private void Timer1Tick(object sender, EventArgs e)
{
if (subtitleListView1.TopItem == null || subtitleListView2.TopItem == null)
return;
char activeListView;
var p = PointToClient(MousePosition);
if (p.X >= subtitleListView1.Left && p.X <= subtitleListView1.Left + subtitleListView1.Width + 2)
@ -778,7 +785,7 @@ namespace Nikse.SubtitleEdit.Forms
}
subtitleListView2.SelectedIndexChanged -= SubtitleListView2SelectedIndexChanged;
subtitleListView2.SelectIndexAndEnsureVisible(subtitleListView1.SelectedItems[0].Index);
if (subtitleListView2.TopItem != null && subtitleListView1.TopItem.Index != subtitleListView2.TopItem.Index &&
if (subtitleListView1.TopItem.Index != subtitleListView2.TopItem.Index &&
subtitleListView2.Items.Count > subtitleListView1.TopItem.Index)
subtitleListView2.TopItem = subtitleListView2.Items[subtitleListView1.TopItem.Index];
subtitleListView2.SelectedIndexChanged += SubtitleListView2SelectedIndexChanged;
@ -870,6 +877,10 @@ namespace Nikse.SubtitleEdit.Forms
private void VerifyDragDrop(ListView listView, DragEventArgs e)
{
var files = e.Data.GetData(DataFormats.FileDrop) as string[];
if (files == null)
{
return;
}
if (files.Length > 1)
{
MessageBox.Show(Configuration.Settings.Language.Main.DropOnlyOneFile,