Fixed bug in Networking (after delete/insert)

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@194 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2010-12-25 15:15:24 +00:00
parent 442724cf67
commit 373b433cd0
2 changed files with 31 additions and 16 deletions

View File

@ -1353,7 +1353,7 @@
this.leaveSessionToolStripMenuItem.Name = "leaveSessionToolStripMenuItem"; this.leaveSessionToolStripMenuItem.Name = "leaveSessionToolStripMenuItem";
this.leaveSessionToolStripMenuItem.Size = new System.Drawing.Size(215, 22); this.leaveSessionToolStripMenuItem.Size = new System.Drawing.Size(215, 22);
this.leaveSessionToolStripMenuItem.Text = "Leave session"; this.leaveSessionToolStripMenuItem.Text = "Leave session";
this.leaveSessionToolStripMenuItem.Click += new System.EventHandler(this.leaveSessionToolStripMenuItem_Click); this.leaveSessionToolStripMenuItem.Click += new System.EventHandler(this.LeaveSessionToolStripMenuItemClick);
// //
// helpToolStripMenuItem // helpToolStripMenuItem
// //

View File

@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.IO.Compression;
using System.Net; using System.Net;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
@ -6313,7 +6312,12 @@ namespace Nikse.SubtitleEdit.Forms
} }
trackBarWaveFormPosition.ValueChanged -= trackBarWaveFormPosition_ValueChanged; trackBarWaveFormPosition.ValueChanged -= trackBarWaveFormPosition_ValueChanged;
trackBarWaveFormPosition.Value = (int)mediaPlayer.CurrentPosition; int value = (int)mediaPlayer.CurrentPosition;
if (value > trackBarWaveFormPosition.Maximum)
value = trackBarWaveFormPosition.Maximum;
if (value < trackBarWaveFormPosition.Minimum)
value = trackBarWaveFormPosition.Minimum;
trackBarWaveFormPosition.Value = value;
trackBarWaveFormPosition.ValueChanged += trackBarWaveFormPosition_ValueChanged; trackBarWaveFormPosition.ValueChanged += trackBarWaveFormPosition_ValueChanged;
} }
} }
@ -7185,7 +7189,7 @@ namespace Nikse.SubtitleEdit.Forms
ShowStatus(message); ShowStatus(message);
} }
#region Networking
private void startServerToolStripMenuItem_Click(object sender, EventArgs e) private void startServerToolStripMenuItem_Click(object sender, EventArgs e)
{ {
_networkSession = new NikseWebServiceSession(_subtitle, _subtitleAlternate, TimerWebServiceTick, OnUpdateUserLogEntries); _networkSession = new NikseWebServiceSession(_subtitle, _subtitleAlternate, TimerWebServiceTick, OnUpdateUserLogEntries);
@ -7291,6 +7295,10 @@ namespace Nikse.SubtitleEdit.Forms
SubtitleListview1.SelectedIndexChanged -= SubtitleListview1_SelectedIndexChanged; SubtitleListview1.SelectedIndexChanged -= SubtitleListview1_SelectedIndexChanged;
string message; string message;
var updates = _networkSession.GetUpdates(out message); var updates = _networkSession.GetUpdates(out message);
int currentSelectedIndex = -1;
if (SubtitleListview1.SelectedItems.Count > 0)
currentSelectedIndex = SubtitleListview1.SelectedItems[0].Index;
int oldCurrentSelectedIndex = currentSelectedIndex;
if (message == "OK") if (message == "OK")
{ {
foreach (var update in updates) foreach (var update in updates)
@ -7351,6 +7359,8 @@ namespace Nikse.SubtitleEdit.Forms
if (insertIndex > update.Index) if (insertIndex > update.Index)
insertIndex--; insertIndex--;
if (currentSelectedIndex >= 0 && currentSelectedIndex > update.Index)
currentSelectedIndex--;
} }
else if (update.Action == "INS") else if (update.Action == "INS")
{ {
@ -7376,6 +7386,8 @@ namespace Nikse.SubtitleEdit.Forms
} }
if (insertIndex > update.Index) if (insertIndex > update.Index)
insertIndex++; insertIndex++;
if (currentSelectedIndex >= 0 && currentSelectedIndex > update.Index)
currentSelectedIndex++;
} }
else if (update.Action == "UPD") else if (update.Action == "UPD")
{ {
@ -7455,7 +7467,7 @@ namespace Nikse.SubtitleEdit.Forms
else else
{ {
MessageBox.Show(message); MessageBox.Show(message);
leaveSessionToolStripMenuItem_Click(null, null); LeaveSessionToolStripMenuItemClick(null, null);
SubtitleListview1.SelectedIndexChanged += SubtitleListview1_SelectedIndexChanged; SubtitleListview1.SelectedIndexChanged += SubtitleListview1_SelectedIndexChanged;
return; return;
} }
@ -7463,8 +7475,15 @@ namespace Nikse.SubtitleEdit.Forms
{ {
_subtitle.Renumber(1); _subtitle.Renumber(1);
SubtitleListview1.Fill(_subtitle, _subtitleAlternate); SubtitleListview1.Fill(_subtitle, _subtitleAlternate);
UpdateListviewwithUserLogEntries(); UpdateListviewWithUserLogEntries();
if (_oldSelectedParagraph != null)
if (oldCurrentSelectedIndex != currentSelectedIndex)
{
_oldSelectedParagraph = null;
_subtitleListViewIndex = currentSelectedIndex;
SubtitleListview1.SelectIndexAndEnsureVisible(_subtitleListViewIndex);
}
else if (_oldSelectedParagraph != null)
{ {
Paragraph p = _subtitle.GetFirstAlike(_oldSelectedParagraph); Paragraph p = _subtitle.GetFirstAlike(_oldSelectedParagraph);
if (p != null) if (p != null)
@ -7476,14 +7495,14 @@ namespace Nikse.SubtitleEdit.Forms
} }
else if (updateListViewStatus) else if (updateListViewStatus)
{ {
UpdateListviewwithUserLogEntries(); UpdateListviewWithUserLogEntries();
} }
_networkSession.LastSubtitle = new Subtitle(_subtitle); _networkSession.LastSubtitle = new Subtitle(_subtitle);
SubtitleListview1.SelectedIndexChanged += SubtitleListview1_SelectedIndexChanged; SubtitleListview1.SelectedIndexChanged += SubtitleListview1_SelectedIndexChanged;
_networkSession.TimerStart(); _networkSession.TimerStart();
} }
private void UpdateListviewwithUserLogEntries() private void UpdateListviewWithUserLogEntries()
{ {
SubtitleListview1.BeginUpdate(); SubtitleListview1.BeginUpdate();
foreach (UpdateLogEntry entry in _networkSession.UpdateLog) foreach (UpdateLogEntry entry in _networkSession.UpdateLog)
@ -7491,7 +7510,7 @@ namespace Nikse.SubtitleEdit.Forms
SubtitleListview1.EndUpdate(); SubtitleListview1.EndUpdate();
} }
private void leaveSessionToolStripMenuItem_Click(object sender, EventArgs e) private void LeaveSessionToolStripMenuItemClick(object sender, EventArgs e)
{ {
if (_networkSession != null) if (_networkSession != null)
{ {
@ -7521,7 +7540,7 @@ namespace Nikse.SubtitleEdit.Forms
internal void OnUpdateUserLogEntries(object sender, EventArgs e) internal void OnUpdateUserLogEntries(object sender, EventArgs e)
{ {
UpdateListviewwithUserLogEntries(); UpdateListviewWithUserLogEntries();
} }
private void toolStripStatusNetworking_Click(object sender, EventArgs e) private void toolStripStatusNetworking_Click(object sender, EventArgs e)
@ -7552,11 +7571,7 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
} }
#endregion
private void AudioWaveForm_KeyDown(object sender, KeyEventArgs e)
{
}
} }
} }