repo: Move progress interval logic to base class

This commit is contained in:
Hylke Bons 2012-01-15 23:45:17 +00:00
parent 90cb3849b5
commit 03db2a2f09
2 changed files with 17 additions and 27 deletions

View file

@ -183,9 +183,6 @@ namespace SparkleLib {
double percentage = 1.0;
Regex progress_regex = new Regex (@"([0-9]+)%", RegexOptions.Compiled);
DateTime last_change = DateTime.Now;
TimeSpan change_interval = new TimeSpan (0, 0, 0, 1);
while (!git.StandardError.EndOfStream) {
string line = git.StandardError.ReadLine ();
Match match = progress_regex.Match (line);
@ -218,14 +215,7 @@ namespace SparkleLib {
if (number >= percentage) {
percentage = number;
if (percentage == 100.0)
percentage = 99.0;
if (DateTime.Compare (last_change, DateTime.Now.Subtract (change_interval)) < 0) {
base.OnSyncProgressChanged (percentage, speed);
last_change = DateTime.Now;
}
base.OnSyncProgressChanged (percentage, speed);
}
}
@ -249,9 +239,6 @@ namespace SparkleLib {
double percentage = 1.0;
Regex progress_regex = new Regex (@"([0-9]+)%", RegexOptions.Compiled);
DateTime last_change = DateTime.Now;
TimeSpan change_interval = new TimeSpan (0, 0, 0, 1);
while (!git.StandardError.EndOfStream) {
string line = git.StandardError.ReadLine ();
Match match = progress_regex.Match (line);
@ -284,14 +271,7 @@ namespace SparkleLib {
if (number >= percentage) {
percentage = number;
if (percentage == 100.0)
percentage = 99.0;
if (DateTime.Compare (last_change, DateTime.Now.Subtract (change_interval)) < 0) {
base.OnSyncProgressChanged (percentage, speed);
last_change = DateTime.Now;
}
base.OnSyncProgressChanged (percentage, speed);
}
}

View file

@ -634,15 +634,25 @@ namespace SparkleLib {
}
private DateTime progress_last_change = DateTime.Now;
private TimeSpan progress_change_interval = new TimeSpan (0, 0, 0, 1);
protected void OnSyncProgressChanged (double progress_percentage, string progress_speed)
{
// Console.WriteLine ("OnProgressChanged: " + progress_percentage + " " + progress_speed);
if (DateTime.Compare (this.progress_last_change,
DateTime.Now.Subtract (this.progress_change_interval)) < 0) {
this.progress_percentage = progress_percentage;
this.progress_speed = progress_speed;
if (SyncProgressChanged != null) {
if (progress_percentage == 100.0)
progress_percentage = 99.0;
if (SyncProgressChanged != null)
SyncProgressChanged (progress_percentage, progress_speed);
this.progress_percentage = progress_percentage;
this.progress_speed = progress_speed;
this.progress_last_change = DateTime.Now;
SyncProgressChanged (progress_percentage, progress_speed);
}
}
}