diff --git a/SparkleLib/Git/SparkleRepoGit.cs b/SparkleLib/Git/SparkleRepoGit.cs index ea8f0176..ade6a0bf 100755 --- a/SparkleLib/Git/SparkleRepoGit.cs +++ b/SparkleLib/Git/SparkleRepoGit.cs @@ -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); } } diff --git a/SparkleLib/SparkleRepoBase.cs b/SparkleLib/SparkleRepoBase.cs index 0ecb7075..8067b4ad 100755 --- a/SparkleLib/SparkleRepoBase.cs +++ b/SparkleLib/SparkleRepoBase.cs @@ -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); + } + } }