From 03db2a2f09b0d18061ff70e2e5cb1782d4425f4e Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Sun, 15 Jan 2012 23:45:17 +0000 Subject: [PATCH] repo: Move progress interval logic to base class --- SparkleLib/Git/SparkleRepoGit.cs | 24 ++---------------------- SparkleLib/SparkleRepoBase.cs | 20 +++++++++++++++----- 2 files changed, 17 insertions(+), 27 deletions(-) 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); + } + } }