Changeset 482


Ignore:
Timestamp:
11/09/08 14:40:54 (6 years ago)
Author:
lowjoel
Message:

-Rewrote the progress calculation architecture to work slightly better for multi target tasks.
-Progress values are now decimals of type float. This allows for larger number of significant figures (and scalable to double, if necessary)

Location:
branches/eraser6
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/Eraser/ProgressForm.Designer.cs

    r460 r482  
    8787            this.overallProgress.BackgroundImage = null; 
    8888            this.overallProgress.Font = null; 
     89            this.overallProgress.Maximum = 1000; 
    8990            this.overallProgress.Name = "overallProgress"; 
    9091            //  
     
    176177            this.itemProgress.BackgroundImage = null; 
    177178            this.itemProgress.Font = null; 
     179            this.itemProgress.Maximum = 1000; 
    178180            this.itemProgress.Name = "itemProgress"; 
    179181            //  
  • branches/eraser6/Eraser/ProgressForm.cs

    r366 r482  
    6565 
    6666            item.Text = File.GetCompactPath(e.CurrentItemName, item.Width * 2, item.Font); 
    67             pass.Text = e.TotalPasses != 0 ? 
    68                 string.Format(S._("{0} out of {1}"), e.CurrentPass, e.TotalPasses) : 
    69                 string.Format("{0}", e.CurrentPass); 
    70             timeLeft.Text = string.Format(S._("{0} left"), new TimeSpan(0, 0, e.TimeLeft).ToString()); 
     67            pass.Text = e.CurrentTargetTotalPasses != 0 ? 
     68                string.Format(S._("{0} out of {1}"), e.CurrentItemPass, e.CurrentTargetTotalPasses) : 
     69                string.Format("{0}", e.CurrentItemPass); 
     70            timeLeft.Text = string.Format(S._("{0:hh:mm:ss} left"), e.TimeLeft); 
    7171 
    72             itemProgress.Value = e.CurrentItemProgress; 
    73             itemProgressLbl.Text = string.Format("{0}%", e.CurrentItemProgress); 
    74             overallProgress.Value = e.OverallProgress; 
    75             overallProgressLbl.Text = string.Format(S._("Total: {0}%"), e.OverallProgress); 
     72            itemProgress.Value = (int)(e.CurrentItemProgress * 1000); 
     73            itemProgressLbl.Text = e.CurrentItemProgress.ToString("#0%"); 
     74            overallProgress.Value = (int)(e.OverallProgress * 1000); 
     75            overallProgressLbl.Text = string.Format(S._("Total: {0,2:#0.00%}"), e.OverallProgress); 
    7676        } 
    7777 
  • branches/eraser6/Eraser/ProgressForm.resx

    r460 r482  
    129129    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    130130  </data> 
     131  <data name="titleLbl.TabIndex" type="System.Int32, mscorlib"> 
     132    <value>0</value> 
     133  </data> 
     134  <data name="&gt;&gt;status.ZOrder" xml:space="preserve"> 
     135    <value>14</value> 
     136  </data> 
    131137  <data name="status.TabIndex" type="System.Int32, mscorlib"> 
    132138    <value>5</value> 
     
    135141    <value>148, 95</value> 
    136142  </data> 
    137   <data name="bevelLine1.TabIndex" type="System.Int32, mscorlib"> 
    138     <value>16</value> 
    139   </data> 
    140143  <data name="timeLeft.Location" type="System.Drawing.Point, System.Drawing"> 
    141144    <value>215, 114</value> 
     
    150153    <value>$this</value> 
    151154  </data> 
    152   <data name="$this.Font" type="System.Drawing.Font, System.Drawing"> 
    153     <value>Segoe UI, 9pt</value> 
     155  <data name="&gt;&gt;passLbl.Name" xml:space="preserve"> 
     156    <value>passLbl</value> 
     157  </data> 
     158  <data name="&gt;&gt;bevelLine1.Parent" xml:space="preserve"> 
     159    <value>$this</value> 
     160  </data> 
     161  <data name="&gt;&gt;item.Name" xml:space="preserve"> 
     162    <value>item</value> 
     163  </data> 
     164  <data name="&gt;&gt;bevelLine1.ZOrder" xml:space="preserve"> 
     165    <value>3</value> 
     166  </data> 
     167  <data name="&gt;&gt;jobTitle.Type" xml:space="preserve"> 
     168    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     169  </data> 
     170  <data name="&gt;&gt;itemProgress.Parent" xml:space="preserve"> 
     171    <value>$this</value> 
     172  </data> 
     173  <data name="itemLbl.Text" xml:space="preserve"> 
     174    <value>Item:</value> 
     175  </data> 
     176  <data name="&gt;&gt;timeLeftLbl.Parent" xml:space="preserve"> 
     177    <value>$this</value> 
     178  </data> 
     179  <data name="&gt;&gt;passLbl.ZOrder" xml:space="preserve"> 
     180    <value>10</value> 
     181  </data> 
     182  <data name="stop.TabIndex" type="System.Int32, mscorlib"> 
     183    <value>14</value> 
     184  </data> 
     185  <data name="&gt;&gt;passLbl.Type" xml:space="preserve"> 
     186    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     187  </data> 
     188  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> 
     189    <value>449, 216</value> 
     190  </data> 
     191  <data name="&gt;&gt;title.ZOrder" xml:space="preserve"> 
     192    <value>8</value> 
     193  </data> 
     194  <data name="passLbl.Size" type="System.Drawing.Size, System.Drawing"> 
     195    <value>33, 15</value> 
     196  </data> 
     197  <data name="timeLeftLbl.Text" xml:space="preserve"> 
     198    <value>Time left:</value> 
     199  </data> 
     200  <data name="jobTitle.Location" type="System.Drawing.Point, System.Drawing"> 
     201    <value>149, 8</value> 
     202  </data> 
     203  <data name="&gt;&gt;timeLeftLbl.Name" xml:space="preserve"> 
     204    <value>timeLeftLbl</value> 
     205  </data> 
     206  <data name="&gt;&gt;pass.Name" xml:space="preserve"> 
     207    <value>pass</value> 
     208  </data> 
     209  <data name="jobTitle.AutoSize" type="System.Boolean, mscorlib"> 
     210    <value>True</value> 
     211  </data> 
     212  <data name="itemLbl.Location" type="System.Drawing.Point, System.Drawing"> 
     213    <value>148, 61</value> 
     214  </data> 
     215  <data name="&gt;&gt;pass.ZOrder" xml:space="preserve"> 
     216    <value>9</value> 
     217  </data> 
     218  <data name="titleLbl.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> 
     219    <value>TopCenter</value> 
     220  </data> 
     221  <data name="&gt;&gt;statusLbl.Parent" xml:space="preserve"> 
     222    <value>$this</value> 
     223  </data> 
     224  <data name="status.Font" type="System.Drawing.Font, System.Drawing"> 
     225    <value>Segoe UI, 9pt, style=Bold</value> 
     226  </data> 
     227  <data name="&gt;&gt;item.Type" xml:space="preserve"> 
     228    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     229  </data> 
     230  <data name="$this.Text" xml:space="preserve"> 
     231    <value>Erasure Progress</value> 
     232  </data> 
     233  <data name="titleLbl.Font" type="System.Drawing.Font, System.Drawing"> 
     234    <value>Segoe UI, 10pt, style=Bold</value> 
     235  </data> 
     236  <data name="&gt;&gt;statusLbl.Type" xml:space="preserve"> 
     237    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     238  </data> 
     239  <data name="itemLbl.Size" type="System.Drawing.Size, System.Drawing"> 
     240    <value>34, 15</value> 
     241  </data> 
     242  <data name="&gt;&gt;bevelLine1.Name" xml:space="preserve"> 
     243    <value>bevelLine1</value> 
     244  </data> 
     245  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> 
     246    <value>96, 96</value> 
     247  </data> 
     248  <data name="bevelLine2.TabIndex" type="System.Int32, mscorlib"> 
     249    <value>15</value> 
     250  </data> 
     251  <data name="&gt;&gt;itemProgress.Type" xml:space="preserve"> 
     252    <value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     253  </data> 
     254  <data name="&gt;&gt;timeLeft.ZOrder" xml:space="preserve"> 
     255    <value>0</value> 
     256  </data> 
     257  <data name="statusLbl.Location" type="System.Drawing.Point, System.Drawing"> 
     258    <value>147, 28</value> 
     259  </data> 
     260  <data name="&gt;&gt;overallProgressLbl.Name" xml:space="preserve"> 
     261    <value>overallProgressLbl</value> 
     262  </data> 
     263  <data name="timeLeftLbl.AutoSize" type="System.Boolean, mscorlib"> 
     264    <value>True</value> 
     265  </data> 
     266  <data name="timeLeft.Text" xml:space="preserve"> 
     267    <value>Calculating...</value> 
     268  </data> 
     269  <data name="item.Location" type="System.Drawing.Point, System.Drawing"> 
     270    <value>215, 61</value> 
     271  </data> 
     272  <data name="jobTitle.Font" type="System.Drawing.Font, System.Drawing"> 
     273    <value>Segoe UI, 9pt, style=Bold</value> 
     274  </data> 
     275  <data name="passLbl.Text" xml:space="preserve"> 
     276    <value>Pass:</value> 
     277  </data> 
     278  <data name="&gt;&gt;titleLbl.Type" xml:space="preserve"> 
     279    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     280  </data> 
     281  <data name="&gt;&gt;itemLbl.ZOrder" xml:space="preserve"> 
     282    <value>12</value> 
     283  </data> 
     284  <data name="&gt;&gt;pass.Parent" xml:space="preserve"> 
     285    <value>$this</value> 
     286  </data> 
     287  <data name="overallProgressLbl.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> 
     288    <value>MiddleCenter</value> 
     289  </data> 
     290  <data name="title.Location" type="System.Drawing.Point, System.Drawing"> 
     291    <value>6, 33</value> 
     292  </data> 
     293  <data name="item.Size" type="System.Drawing.Size, System.Drawing"> 
     294    <value>220, 30</value> 
     295  </data> 
     296  <data name="&gt;&gt;itemLbl.Type" xml:space="preserve"> 
     297    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     298  </data> 
     299  <data name="&gt;&gt;jobTitle.Parent" xml:space="preserve"> 
     300    <value>$this</value> 
     301  </data> 
     302  <data name="pass.Text" xml:space="preserve"> 
     303    <value>0</value> 
     304  </data> 
     305  <data name="&gt;&gt;itemProgressLbl.Parent" xml:space="preserve"> 
     306    <value>$this</value> 
     307  </data> 
     308  <data name="itemLbl.AutoSize" type="System.Boolean, mscorlib"> 
     309    <value>True</value> 
     310  </data> 
     311  <data name="&gt;&gt;timeLeftLbl.ZOrder" xml:space="preserve"> 
     312    <value>1</value> 
     313  </data> 
     314  <data name="passLbl.AutoSize" type="System.Boolean, mscorlib"> 
     315    <value>True</value> 
     316  </data> 
     317  <data name="bevelLine1.Size" type="System.Drawing.Size, System.Drawing"> 
     318    <value>285, 2</value> 
     319  </data> 
     320  <data name="bevelLine2.Size" type="System.Drawing.Size, System.Drawing"> 
     321    <value>2, 2</value> 
     322  </data> 
     323  <data name="itemProgressLbl.TabIndex" type="System.Int32, mscorlib"> 
     324    <value>13</value> 
     325  </data> 
     326  <data name="itemLbl.TabIndex" type="System.Int32, mscorlib"> 
     327    <value>6</value> 
     328  </data> 
     329  <data name="&gt;&gt;itemLbl.Name" xml:space="preserve"> 
     330    <value>itemLbl</value> 
     331  </data> 
     332  <data name="statusLbl.AutoSize" type="System.Boolean, mscorlib"> 
     333    <value>True</value> 
     334  </data> 
     335  <data name="&gt;&gt;statusLbl.ZOrder" xml:space="preserve"> 
     336    <value>13</value> 
     337  </data> 
     338  <data name="&gt;&gt;stop.Type" xml:space="preserve"> 
     339    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     340  </data> 
     341  <data name="titleLbl.Text" xml:space="preserve"> 
     342    <value>Erasing...</value> 
     343  </data> 
     344  <data name="&gt;&gt;stop.Name" xml:space="preserve"> 
     345    <value>stop</value> 
     346  </data> 
     347  <data name="&gt;&gt;overallProgress.Type" xml:space="preserve"> 
     348    <value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     349  </data> 
     350  <data name="itemProgressLbl.Text" xml:space="preserve"> 
     351    <value>0%</value> 
     352  </data> 
     353  <data name="&gt;&gt;overallProgressLbl.Parent" xml:space="preserve"> 
     354    <value>$this</value> 
     355  </data> 
     356  <data name="itemProgressLbl.Size" type="System.Drawing.Size, System.Drawing"> 
     357    <value>23, 15</value> 
     358  </data> 
     359  <data name="titleLbl.Location" type="System.Drawing.Point, System.Drawing"> 
     360    <value>6, 6</value> 
     361  </data> 
     362  <data name="bevelLine1.Location" type="System.Drawing.Point, System.Drawing"> 
     363    <value>152, 51</value> 
     364  </data> 
     365  <data name="&gt;&gt;titleLbl.Name" xml:space="preserve"> 
     366    <value>titleLbl</value> 
     367  </data> 
     368  <data name="&gt;&gt;itemProgressLbl.Name" xml:space="preserve"> 
     369    <value>itemProgressLbl</value> 
     370  </data> 
     371  <data name="timeLeft.TabIndex" type="System.Int32, mscorlib"> 
     372    <value>11</value> 
     373  </data> 
     374  <data name="&gt;&gt;$this.Name" xml:space="preserve"> 
     375    <value>ProgressForm</value> 
     376  </data> 
     377  <data name="&gt;&gt;jobTitle.Name" xml:space="preserve"> 
     378    <value>jobTitle</value> 
     379  </data> 
     380  <data name="&gt;&gt;passLbl.Parent" xml:space="preserve"> 
     381    <value>$this</value> 
     382  </data> 
     383  <data name="itemProgress.Size" type="System.Drawing.Size, System.Drawing"> 
     384    <value>257, 17</value> 
     385  </data> 
     386  <data name="&gt;&gt;titleLbl.ZOrder" xml:space="preserve"> 
     387    <value>7</value> 
     388  </data> 
     389  <data name="&gt;&gt;timeLeftLbl.Type" xml:space="preserve"> 
     390    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     391  </data> 
     392  <data name="&gt;&gt;bevelLine2.ZOrder" xml:space="preserve"> 
     393    <value>2</value> 
     394  </data> 
     395  <data name="&gt;&gt;itemLbl.Parent" xml:space="preserve"> 
     396    <value>$this</value> 
     397  </data> 
     398  <data name="itemProgressLbl.Location" type="System.Drawing.Point, System.Drawing"> 
     399    <value>413, 138</value> 
     400  </data> 
     401  <data name="&gt;&gt;overallProgressLbl.Type" xml:space="preserve"> 
     402    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     403  </data> 
     404  <data name="overallProgress.Location" type="System.Drawing.Point, System.Drawing"> 
     405    <value>6, 192</value> 
     406  </data> 
     407  <data name="&gt;&gt;itemProgress.Name" xml:space="preserve"> 
     408    <value>itemProgress</value> 
     409  </data> 
     410  <data name="itemProgressLbl.AutoSize" type="System.Boolean, mscorlib"> 
     411    <value>True</value> 
     412  </data> 
     413  <data name="item.TabIndex" type="System.Int32, mscorlib"> 
     414    <value>7</value> 
     415  </data> 
     416  <data name="overallProgress.TabIndex" type="System.Int32, mscorlib"> 
     417    <value>2</value> 
     418  </data> 
     419  <data name="itemProgress.Location" type="System.Drawing.Point, System.Drawing"> 
     420    <value>150, 137</value> 
     421  </data> 
     422  <data name="status.Size" type="System.Drawing.Size, System.Drawing"> 
     423    <value>84, 15</value> 
     424  </data> 
     425  <data name="&gt;&gt;jobTitle.ZOrder" xml:space="preserve"> 
     426    <value>15</value> 
     427  </data> 
     428  <data name="title.TabIndex" type="System.Int32, mscorlib"> 
     429    <value>11</value> 
     430  </data> 
     431  <data name="&gt;&gt;status.Name" xml:space="preserve"> 
     432    <value>status</value> 
     433  </data> 
     434  <data name="&gt;&gt;$this.Type" xml:space="preserve"> 
     435    <value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     436  </data> 
     437  <data name="status.AutoSize" type="System.Boolean, mscorlib"> 
     438    <value>True</value> 
     439  </data> 
     440  <data name="&gt;&gt;bevelLine2.Name" xml:space="preserve"> 
     441    <value>bevelLine2</value> 
     442  </data> 
     443  <data name="status.Text" xml:space="preserve"> 
     444    <value>Overwriting...</value> 
     445  </data> 
     446  <data name="&gt;&gt;itemProgressLbl.Type" xml:space="preserve"> 
     447    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     448  </data> 
     449  <data name="&gt;&gt;overallProgress.ZOrder" xml:space="preserve"> 
     450    <value>16</value> 
     451  </data> 
     452  <data name="jobTitle.TabIndex" type="System.Int32, mscorlib"> 
     453    <value>3</value> 
     454  </data> 
     455  <data name="&gt;&gt;title.Parent" xml:space="preserve"> 
     456    <value>$this</value> 
     457  </data> 
     458  <data name="overallProgressLbl.Size" type="System.Drawing.Size, System.Drawing"> 
     459    <value>128, 15</value> 
     460  </data> 
     461  <data name="&gt;&gt;bevelLine2.Parent" xml:space="preserve"> 
     462    <value>$this</value> 
     463  </data> 
     464  <data name="pass.Location" type="System.Drawing.Point, System.Drawing"> 
     465    <value>215, 95</value> 
     466  </data> 
     467  <data name="stop.Text" xml:space="preserve"> 
     468    <value>Stop</value> 
     469  </data> 
     470  <data name="statusLbl.Text" xml:space="preserve"> 
     471    <value>Status:</value> 
     472  </data> 
     473  <data name="timeLeftLbl.TabIndex" type="System.Int32, mscorlib"> 
     474    <value>10</value> 
     475  </data> 
     476  <data name="overallProgressLbl.Location" type="System.Drawing.Point, System.Drawing"> 
     477    <value>6, 174</value> 
     478  </data> 
     479  <data name="&gt;&gt;titleLbl.Parent" xml:space="preserve"> 
     480    <value>$this</value> 
    154481  </data> 
    155482  <data name="titleLbl.Size" type="System.Drawing.Size, System.Drawing"> 
    156483    <value>128, 18</value> 
    157484  </data> 
    158   <data name="&gt;&gt;bevelLine1.Parent" xml:space="preserve"> 
    159     <value>$this</value> 
    160   </data> 
    161   <data name="&gt;&gt;item.Name" xml:space="preserve"> 
    162     <value>item</value> 
    163   </data> 
    164   <data name="&gt;&gt;bevelLine1.ZOrder" xml:space="preserve"> 
    165     <value>3</value> 
    166   </data> 
    167   <data name="&gt;&gt;jobTitle.Type" xml:space="preserve"> 
    168     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    169   </data> 
    170   <data name="&gt;&gt;itemProgress.Parent" xml:space="preserve"> 
    171     <value>$this</value> 
    172   </data> 
    173   <data name="&gt;&gt;timeLeftLbl.Parent" xml:space="preserve"> 
    174     <value>$this</value> 
    175   </data> 
    176   <data name="stop.TabIndex" type="System.Int32, mscorlib"> 
    177     <value>14</value> 
    178   </data> 
    179   <data name="title.TabIndex" type="System.Int32, mscorlib"> 
     485  <data name="timeLeft.Size" type="System.Drawing.Size, System.Drawing"> 
     486    <value>76, 15</value> 
     487  </data> 
     488  <data name="&gt;&gt;title.Type" xml:space="preserve"> 
     489    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     490  </data> 
     491  <data name="&gt;&gt;pass.Type" xml:space="preserve"> 
     492    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     493  </data> 
     494  <data name="&gt;&gt;status.Parent" xml:space="preserve"> 
     495    <value>$this</value> 
     496  </data> 
     497  <data name="&gt;&gt;stop.Parent" xml:space="preserve"> 
     498    <value>$this</value> 
     499  </data> 
     500  <data name="bevelLine2.Location" type="System.Drawing.Point, System.Drawing"> 
     501    <value>140, 13</value> 
     502  </data> 
     503  <data name="pass.TabIndex" type="System.Int32, mscorlib"> 
     504    <value>9</value> 
     505  </data> 
     506  <data name="&gt;&gt;timeLeft.Type" xml:space="preserve"> 
     507    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     508  </data> 
     509  <data name="&gt;&gt;bevelLine1.Type" xml:space="preserve"> 
     510    <value>Trustbridge.Windows.Controls.BevelLine, BevelLine, Version=1.0.2859.29240, Culture=neutral, PublicKeyToken=null</value> 
     511  </data> 
     512  <data name="&gt;&gt;item.ZOrder" xml:space="preserve"> 
    180513    <value>11</value> 
    181514  </data> 
    182   <data name="&gt;&gt;passLbl.Type" xml:space="preserve"> 
    183     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    184   </data> 
    185   <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> 
    186     <value>449, 216</value> 
    187   </data> 
    188   <data name="&gt;&gt;title.ZOrder" xml:space="preserve"> 
    189     <value>8</value> 
    190   </data> 
    191   <data name="passLbl.Size" type="System.Drawing.Size, System.Drawing"> 
    192     <value>33, 15</value> 
    193   </data> 
    194   <data name="timeLeftLbl.Text" xml:space="preserve"> 
    195     <value>Time left:</value> 
    196   </data> 
    197   <data name="jobTitle.Location" type="System.Drawing.Point, System.Drawing"> 
    198     <value>149, 8</value> 
    199   </data> 
    200   <data name="&gt;&gt;timeLeftLbl.Name" xml:space="preserve"> 
    201     <value>timeLeftLbl</value> 
    202   </data> 
    203   <data name="&gt;&gt;pass.Name" xml:space="preserve"> 
    204     <value>pass</value> 
    205   </data> 
    206   <data name="jobTitle.AutoSize" type="System.Boolean, mscorlib"> 
    207     <value>True</value> 
    208   </data> 
    209   <data name="itemLbl.Location" type="System.Drawing.Point, System.Drawing"> 
    210     <value>148, 61</value> 
    211   </data> 
    212   <data name="itemProgress.Size" type="System.Drawing.Size, System.Drawing"> 
    213     <value>257, 17</value> 
    214   </data> 
    215   <data name="&gt;&gt;pass.ZOrder" xml:space="preserve"> 
    216     <value>9</value> 
    217   </data> 
    218   <data name="titleLbl.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> 
    219     <value>TopCenter</value> 
    220   </data> 
    221   <data name="&gt;&gt;statusLbl.Parent" xml:space="preserve"> 
    222     <value>$this</value> 
    223   </data> 
    224   <data name="status.Font" type="System.Drawing.Font, System.Drawing"> 
    225     <value>Segoe UI, 9pt, style=Bold</value> 
    226   </data> 
    227   <data name="&gt;&gt;item.Type" xml:space="preserve"> 
    228     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    229   </data> 
    230   <data name="$this.Text" xml:space="preserve"> 
    231     <value>Erasure Progress</value> 
    232   </data> 
    233   <data name="titleLbl.Font" type="System.Drawing.Font, System.Drawing"> 
    234     <value>Segoe UI, 10pt, style=Bold</value> 
    235   </data> 
    236   <data name="itemLbl.Size" type="System.Drawing.Size, System.Drawing"> 
    237     <value>34, 15</value> 
    238   </data> 
    239   <data name="&gt;&gt;bevelLine1.Name" xml:space="preserve"> 
    240     <value>bevelLine1</value> 
    241   </data> 
    242   <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> 
    243     <value>96, 96</value> 
    244   </data> 
    245   <data name="overallProgressLbl.Size" type="System.Drawing.Size, System.Drawing"> 
    246     <value>128, 15</value> 
    247   </data> 
    248   <data name="bevelLine2.TabIndex" type="System.Int32, mscorlib"> 
    249     <value>15</value> 
    250   </data> 
    251   <data name="&gt;&gt;stop.ZOrder" xml:space="preserve"> 
    252     <value>4</value> 
    253   </data> 
    254   <data name="&gt;&gt;timeLeft.ZOrder" xml:space="preserve"> 
    255     <value>0</value> 
     515  <data name="jobTitle.Size" type="System.Drawing.Size, System.Drawing"> 
     516    <value>0, 15</value> 
     517  </data> 
     518  <data name="&gt;&gt;overallProgress.Name" xml:space="preserve"> 
     519    <value>overallProgress</value> 
     520  </data> 
     521  <data name="timeLeftLbl.Location" type="System.Drawing.Point, System.Drawing"> 
     522    <value>148, 114</value> 
    256523  </data> 
    257524  <data name="overallProgressLbl.Text" xml:space="preserve"> 
    258525    <value>Total: 0%</value> 
    259526  </data> 
    260   <data name="timeLeft.Size" type="System.Drawing.Size, System.Drawing"> 
    261     <value>76, 15</value> 
    262   </data> 
    263   <data name="statusLbl.Location" type="System.Drawing.Point, System.Drawing"> 
    264     <value>147, 28</value> 
    265   </data> 
    266   <data name="statusLbl.TabIndex" type="System.Int32, mscorlib"> 
    267     <value>4</value> 
     527  <data name="&gt;&gt;bevelLine2.Type" xml:space="preserve"> 
     528    <value>Trustbridge.Windows.Controls.BevelLine, BevelLine, Version=1.0.2859.29240, Culture=neutral, PublicKeyToken=null</value> 
     529  </data> 
     530  <data name="passLbl.TabIndex" type="System.Int32, mscorlib"> 
     531    <value>8</value> 
     532  </data> 
     533  <data name="&gt;&gt;title.Name" xml:space="preserve"> 
     534    <value>title</value> 
     535  </data> 
     536  <data name="&gt;&gt;overallProgress.Parent" xml:space="preserve"> 
     537    <value>$this</value> 
    268538  </data> 
    269539  <data name="title.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> 
     
    609879</value> 
    610880  </data> 
    611   <data name="&gt;&gt;overallProgressLbl.Parent" xml:space="preserve"> 
    612     <value>$this</value> 
     881  <data name="title.Size" type="System.Drawing.Size, System.Drawing"> 
     882    <value>128, 128</value> 
     883  </data> 
     884  <data name="statusLbl.Size" type="System.Drawing.Size, System.Drawing"> 
     885    <value>42, 15</value> 
     886  </data> 
     887  <data name="status.Location" type="System.Drawing.Point, System.Drawing"> 
     888    <value>215, 28</value> 
     889  </data> 
     890  <data name="stop.Size" type="System.Drawing.Size, System.Drawing"> 
     891    <value>75, 23</value> 
     892  </data> 
     893  <data name="timeLeft.AutoSize" type="System.Boolean, mscorlib"> 
     894    <value>True</value> 
     895  </data> 
     896  <data name="&gt;&gt;itemProgress.ZOrder" xml:space="preserve"> 
     897    <value>5</value> 
     898  </data> 
     899  <data name="&gt;&gt;timeLeft.Name" xml:space="preserve"> 
     900    <value>timeLeft</value> 
     901  </data> 
     902  <data name="pass.Size" type="System.Drawing.Size, System.Drawing"> 
     903    <value>13, 15</value> 
     904  </data> 
     905  <data name="statusLbl.TabIndex" type="System.Int32, mscorlib"> 
     906    <value>4</value> 
     907  </data> 
     908  <data name="overallProgressLbl.TabIndex" type="System.Int32, mscorlib"> 
     909    <value>1</value> 
     910  </data> 
     911  <data name="&gt;&gt;overallProgressLbl.ZOrder" xml:space="preserve"> 
     912    <value>17</value> 
     913  </data> 
     914  <data name="bevelLine1.TabIndex" type="System.Int32, mscorlib"> 
     915    <value>16</value> 
    613916  </data> 
    614917  <data name="&gt;&gt;itemProgressLbl.ZOrder" xml:space="preserve"> 
    615918    <value>6</value> 
    616919  </data> 
    617   <data name="timeLeftLbl.AutoSize" type="System.Boolean, mscorlib"> 
    618     <value>True</value> 
    619   </data> 
    620   <data name="timeLeft.Text" xml:space="preserve"> 
    621     <value>Calculating...</value> 
    622   </data> 
    623   <data name="status.Location" type="System.Drawing.Point, System.Drawing"> 
    624     <value>215, 28</value> 
    625   </data> 
    626   <data name="jobTitle.Font" type="System.Drawing.Font, System.Drawing"> 
    627     <value>Segoe UI, 9pt, style=Bold</value> 
    628   </data> 
    629   <data name="passLbl.Text" xml:space="preserve"> 
    630     <value>Pass:</value> 
    631   </data> 
    632   <data name="&gt;&gt;titleLbl.Type" xml:space="preserve"> 
    633     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    634   </data> 
    635   <data name="&gt;&gt;itemLbl.ZOrder" xml:space="preserve"> 
    636     <value>12</value> 
    637   </data> 
    638   <data name="&gt;&gt;pass.Parent" xml:space="preserve"> 
    639     <value>$this</value> 
    640   </data> 
    641   <data name="overallProgressLbl.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> 
    642     <value>MiddleCenter</value> 
    643   </data> 
    644   <data name="title.Location" type="System.Drawing.Point, System.Drawing"> 
    645     <value>6, 33</value> 
    646   </data> 
    647   <data name="item.Size" type="System.Drawing.Size, System.Drawing"> 
    648     <value>220, 30</value> 
    649   </data> 
    650   <data name="&gt;&gt;itemLbl.Type" xml:space="preserve"> 
    651     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    652   </data> 
    653   <data name="pass.Text" xml:space="preserve"> 
    654     <value>0</value> 
    655   </data> 
    656   <data name="&gt;&gt;itemProgressLbl.Parent" xml:space="preserve"> 
    657     <value>$this</value> 
    658   </data> 
    659   <data name="itemLbl.AutoSize" type="System.Boolean, mscorlib"> 
    660     <value>True</value> 
    661   </data> 
    662   <data name="&gt;&gt;timeLeftLbl.ZOrder" xml:space="preserve"> 
    663     <value>1</value> 
    664   </data> 
    665   <data name="bevelLine1.Size" type="System.Drawing.Size, System.Drawing"> 
    666     <value>285, 2</value> 
    667   </data> 
    668   <data name="bevelLine2.Size" type="System.Drawing.Size, System.Drawing"> 
    669     <value>2, 2</value> 
    670   </data> 
    671   <data name="itemProgressLbl.TabIndex" type="System.Int32, mscorlib"> 
    672     <value>13</value> 
    673   </data> 
    674   <data name="&gt;&gt;item.ZOrder" xml:space="preserve"> 
    675     <value>11</value> 
    676   </data> 
    677   <data name="statusLbl.AutoSize" type="System.Boolean, mscorlib"> 
    678     <value>True</value> 
    679   </data> 
    680   <data name="&gt;&gt;statusLbl.ZOrder" xml:space="preserve"> 
    681     <value>13</value> 
    682   </data> 
    683   <data name="&gt;&gt;stop.Type" xml:space="preserve"> 
    684     <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    685   </data> 
    686   <data name="&gt;&gt;itemProgress.Type" xml:space="preserve"> 
    687     <value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    688   </data> 
    689   <data name="&gt;&gt;stop.Name" xml:space="preserve"> 
    690     <value>stop</value> 
    691   </data> 
    692   <data name="&gt;&gt;overallProgress.Type" xml:space="preserve"> 
    693     <value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    694   </data> 
    695   <data name="itemProgressLbl.Text" xml:space="preserve"> 
    696     <value>0%</value> 
    697   </data> 
    698   <data name="titleLbl.Text" xml:space="preserve"> 
    699     <value>Erasing...</value> 
    700   </data> 
    701   <data name="itemProgressLbl.Size" type="System.Drawing.Size, System.Drawing"> 
    702     <value>23, 15</value> 
    703   </data> 
    704   <data name="bevelLine1.Location" type="System.Drawing.Point, System.Drawing"> 
    705     <value>152, 51</value> 
    706   </data> 
    707   <data name="&gt;&gt;pass.Type" xml:space="preserve"> 
    708     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    709   </data> 
    710   <data name="title.Size" type="System.Drawing.Size, System.Drawing"> 
    711     <value>128, 128</value> 
    712   </data> 
    713   <data name="&gt;&gt;itemProgressLbl.Name" xml:space="preserve"> 
    714     <value>itemProgressLbl</value> 
    715   </data> 
    716   <data name="timeLeft.TabIndex" type="System.Int32, mscorlib"> 
    717     <value>11</value> 
    718   </data> 
    719   <data name="&gt;&gt;$this.Name" xml:space="preserve"> 
    720     <value>ProgressForm</value> 
    721   </data> 
    722   <data name="&gt;&gt;jobTitle.Name" xml:space="preserve"> 
    723     <value>jobTitle</value> 
    724   </data> 
    725   <data name="&gt;&gt;passLbl.Parent" xml:space="preserve"> 
    726     <value>$this</value> 
    727   </data> 
    728   <data name="&gt;&gt;titleLbl.Name" xml:space="preserve"> 
    729     <value>titleLbl</value> 
    730   </data> 
    731   <data name="&gt;&gt;titleLbl.ZOrder" xml:space="preserve"> 
    732     <value>7</value> 
    733   </data> 
    734   <data name="&gt;&gt;timeLeftLbl.Type" xml:space="preserve"> 
    735     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    736   </data> 
    737   <data name="&gt;&gt;bevelLine2.ZOrder" xml:space="preserve"> 
    738     <value>2</value> 
    739   </data> 
    740   <data name="&gt;&gt;itemLbl.Parent" xml:space="preserve"> 
    741     <value>$this</value> 
    742   </data> 
    743   <data name="itemProgressLbl.Location" type="System.Drawing.Point, System.Drawing"> 
    744     <value>413, 138</value> 
    745   </data> 
    746   <data name="&gt;&gt;itemProgressLbl.Type" xml:space="preserve"> 
    747     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    748   </data> 
    749   <data name="overallProgress.Location" type="System.Drawing.Point, System.Drawing"> 
    750     <value>6, 192</value> 
    751   </data> 
    752   <data name="&gt;&gt;itemProgress.Name" xml:space="preserve"> 
    753     <value>itemProgress</value> 
    754   </data> 
    755   <data name="item.TabIndex" type="System.Int32, mscorlib"> 
    756     <value>7</value> 
    757   </data> 
    758   <data name="overallProgress.TabIndex" type="System.Int32, mscorlib"> 
    759     <value>2</value> 
    760   </data> 
    761   <data name="itemProgress.Location" type="System.Drawing.Point, System.Drawing"> 
    762     <value>150, 137</value> 
    763   </data> 
    764   <data name="status.Size" type="System.Drawing.Size, System.Drawing"> 
    765     <value>84, 15</value> 
    766   </data> 
    767   <data name="&gt;&gt;jobTitle.ZOrder" xml:space="preserve"> 
    768     <value>15</value> 
    769   </data> 
    770   <data name="titleLbl.TabIndex" type="System.Int32, mscorlib"> 
    771     <value>0</value> 
    772   </data> 
    773   <data name="&gt;&gt;$this.Type" xml:space="preserve"> 
    774     <value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    775   </data> 
    776   <data name="status.AutoSize" type="System.Boolean, mscorlib"> 
    777     <value>True</value> 
    778   </data> 
    779   <data name="&gt;&gt;bevelLine2.Name" xml:space="preserve"> 
    780     <value>bevelLine2</value> 
    781   </data> 
    782   <data name="&gt;&gt;stop.Parent" xml:space="preserve"> 
    783     <value>$this</value> 
    784   </data> 
    785   <data name="status.Text" xml:space="preserve"> 
    786     <value>Overwriting...</value> 
    787   </data> 
    788   <data name="itemProgressLbl.AutoSize" type="System.Boolean, mscorlib"> 
    789     <value>True</value> 
    790   </data> 
    791   <data name="&gt;&gt;overallProgress.ZOrder" xml:space="preserve"> 
    792     <value>16</value> 
    793   </data> 
    794   <data name="jobTitle.TabIndex" type="System.Int32, mscorlib"> 
    795     <value>3</value> 
    796   </data> 
    797   <data name="&gt;&gt;title.Parent" xml:space="preserve"> 
    798     <value>$this</value> 
    799   </data> 
    800   <data name="itemLbl.Text" xml:space="preserve"> 
    801     <value>Item:</value> 
    802   </data> 
    803   <data name="pass.Location" type="System.Drawing.Point, System.Drawing"> 
    804     <value>215, 95</value> 
    805   </data> 
    806   <data name="stop.Text" xml:space="preserve"> 
    807     <value>Stop</value> 
    808   </data> 
    809   <data name="statusLbl.Text" xml:space="preserve"> 
    810     <value>Status:</value> 
    811   </data> 
    812   <data name="timeLeftLbl.TabIndex" type="System.Int32, mscorlib"> 
    813     <value>10</value> 
    814   </data> 
    815   <data name="overallProgressLbl.Location" type="System.Drawing.Point, System.Drawing"> 
    816     <value>6, 174</value> 
    817   </data> 
    818   <data name="&gt;&gt;titleLbl.Parent" xml:space="preserve"> 
    819     <value>$this</value> 
    820   </data> 
    821   <data name="&gt;&gt;passLbl.Name" xml:space="preserve"> 
    822     <value>passLbl</value> 
    823   </data> 
    824   <data name="&gt;&gt;bevelLine2.Parent" xml:space="preserve"> 
    825     <value>$this</value> 
    826   </data> 
    827   <data name="&gt;&gt;title.Type" xml:space="preserve"> 
    828     <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    829   </data> 
    830   <data name="&gt;&gt;timeLeft.Name" xml:space="preserve"> 
    831     <value>timeLeft</value> 
    832   </data> 
    833   <data name="&gt;&gt;itemLbl.Name" xml:space="preserve"> 
    834     <value>itemLbl</value> 
    835   </data> 
    836   <data name="&gt;&gt;status.Parent" xml:space="preserve"> 
    837     <value>$this</value> 
    838   </data> 
    839   <data name="titleLbl.Location" type="System.Drawing.Point, System.Drawing"> 
    840     <value>6, 6</value> 
    841   </data> 
    842   <data name="bevelLine2.Location" type="System.Drawing.Point, System.Drawing"> 
    843     <value>140, 13</value> 
    844   </data> 
    845   <data name="pass.TabIndex" type="System.Int32, mscorlib"> 
    846     <value>9</value> 
    847   </data> 
    848   <data name="&gt;&gt;timeLeft.Type" xml:space="preserve"> 
    849     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    850   </data> 
    851   <data name="&gt;&gt;bevelLine1.Type" xml:space="preserve"> 
    852     <value>Trustbridge.Windows.Controls.BevelLine, BevelLine, Version=1.0.2859.29240, Culture=neutral, PublicKeyToken=null</value> 
    853   </data> 
    854   <data name="&gt;&gt;overallProgressLbl.Type" xml:space="preserve"> 
    855     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    856   </data> 
    857   <data name="jobTitle.Size" type="System.Drawing.Size, System.Drawing"> 
    858     <value>0, 15</value> 
    859   </data> 
    860   <data name="&gt;&gt;overallProgress.Name" xml:space="preserve"> 
    861     <value>overallProgress</value> 
    862   </data> 
    863   <data name="timeLeftLbl.Location" type="System.Drawing.Point, System.Drawing"> 
    864     <value>148, 114</value> 
    865   </data> 
    866   <data name="passLbl.AutoSize" type="System.Boolean, mscorlib"> 
    867     <value>True</value> 
    868   </data> 
    869   <data name="&gt;&gt;bevelLine2.Type" xml:space="preserve"> 
    870     <value>Trustbridge.Windows.Controls.BevelLine, BevelLine, Version=1.0.2859.29240, Culture=neutral, PublicKeyToken=null</value> 
    871   </data> 
    872   <data name="passLbl.TabIndex" type="System.Int32, mscorlib"> 
    873     <value>8</value> 
    874   </data> 
    875   <data name="&gt;&gt;title.Name" xml:space="preserve"> 
    876     <value>title</value> 
    877   </data> 
    878   <data name="&gt;&gt;overallProgress.Parent" xml:space="preserve"> 
    879     <value>$this</value> 
    880   </data> 
    881   <data name="itemLbl.TabIndex" type="System.Int32, mscorlib"> 
    882     <value>6</value> 
    883   </data> 
    884   <data name="&gt;&gt;status.Name" xml:space="preserve"> 
    885     <value>status</value> 
    886   </data> 
    887   <data name="statusLbl.Size" type="System.Drawing.Size, System.Drawing"> 
    888     <value>42, 15</value> 
    889   </data> 
    890   <data name="&gt;&gt;jobTitle.Parent" xml:space="preserve"> 
    891     <value>$this</value> 
    892   </data> 
    893   <data name="stop.Size" type="System.Drawing.Size, System.Drawing"> 
    894     <value>75, 23</value> 
    895   </data> 
    896   <data name="timeLeft.AutoSize" type="System.Boolean, mscorlib"> 
    897     <value>True</value> 
     920  <data name="overallProgress.Size" type="System.Drawing.Size, System.Drawing"> 
     921    <value>129, 15</value> 
     922  </data> 
     923  <data name="&gt;&gt;statusLbl.Name" xml:space="preserve"> 
     924    <value>statusLbl</value> 
     925  </data> 
     926  <data name="$this.Font" type="System.Drawing.Font, System.Drawing"> 
     927    <value>Segoe UI, 9pt</value> 
    898928  </data> 
    899929  <data name="pass.AutoSize" type="System.Boolean, mscorlib"> 
    900930    <value>True</value> 
    901931  </data> 
    902   <data name="&gt;&gt;itemProgress.ZOrder" xml:space="preserve"> 
    903     <value>5</value> 
    904   </data> 
    905   <data name="item.Location" type="System.Drawing.Point, System.Drawing"> 
    906     <value>215, 61</value> 
    907   </data> 
    908   <data name="&gt;&gt;statusLbl.Type" xml:space="preserve"> 
    909     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    910   </data> 
    911   <data name="overallProgressLbl.TabIndex" type="System.Int32, mscorlib"> 
    912     <value>1</value> 
    913   </data> 
    914   <data name="&gt;&gt;overallProgressLbl.ZOrder" xml:space="preserve"> 
    915     <value>17</value> 
    916   </data> 
    917   <data name="&gt;&gt;overallProgressLbl.Name" xml:space="preserve"> 
    918     <value>overallProgressLbl</value> 
    919   </data> 
    920   <data name="pass.Size" type="System.Drawing.Size, System.Drawing"> 
    921     <value>13, 15</value> 
    922   </data> 
    923   <data name="overallProgress.Size" type="System.Drawing.Size, System.Drawing"> 
    924     <value>129, 15</value> 
    925   </data> 
    926   <data name="&gt;&gt;statusLbl.Name" xml:space="preserve"> 
    927     <value>statusLbl</value> 
    928   </data> 
    929   <data name="&gt;&gt;passLbl.ZOrder" xml:space="preserve"> 
    930     <value>10</value> 
    931   </data> 
    932   <data name="&gt;&gt;status.ZOrder" xml:space="preserve"> 
    933     <value>14</value> 
     932  <data name="&gt;&gt;stop.ZOrder" xml:space="preserve"> 
     933    <value>4</value> 
    934934  </data> 
    935935  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
  • branches/eraser6/Eraser/SchedulerPanel.Designer.cs

    r367 r482  
    223223            this.schedulerProgress.BackgroundImage = null; 
    224224            this.schedulerProgress.Font = null; 
     225            this.schedulerProgress.Maximum = 1000; 
    225226            this.schedulerProgress.Name = "schedulerProgress"; 
    226227            //  
  • branches/eraser6/Eraser/SchedulerPanel.cs

    r366 r482  
    172172 
    173173            //Update the progress bar 
    174             schedulerProgress.Value = e.OverallProgress; 
     174            schedulerProgress.Value = (int)(e.OverallProgress * 1000.0); 
    175175        } 
    176176 
  • branches/eraser6/Eraser/SchedulerPanel.resx

    r467 r482  
    121121    <value>Next Run</value> 
    122122  </data> 
    123   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    124   <data name="schedulerProgress.Size" type="System.Drawing.Size, System.Drawing"> 
    125     <value>200, 23</value> 
    126   </data> 
    127123  <data name="&gt;&gt;deleteTaskToolStripMenuItem.Type" xml:space="preserve"> 
    128124    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    129125  </data> 
     126  <data name="&gt;&gt;$this.Type" xml:space="preserve"> 
     127    <value>Eraser.BasePanel, Eraser, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value> 
     128  </data> 
    130129  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    131   <data name="schedulerColName.Width" type="System.Int32, mscorlib"> 
    132     <value>280</value> 
    133   </data> 
    134   <data name="&gt;&gt;titleIcon.Type" xml:space="preserve"> 
    135     <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    136   </data> 
    137   <data name="&gt;&gt;schedulerColName.Type" xml:space="preserve"> 
    138     <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     130  <data name="schedulerColStatus.Width" type="System.Int32, mscorlib"> 
     131    <value>200</value> 
    139132  </data> 
    140133  <data name="&gt;&gt;runNowToolStripMenuItem.Name" xml:space="preserve"> 
    141134    <value>runNowToolStripMenuItem</value> 
    142135  </data> 
     136  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    143137  <data name="editTaskToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> 
    144138    <value>149, 22</value> 
     
    153147    <value>schedulerColNextRun</value> 
    154148  </data> 
    155   <data name="&gt;&gt;$this.Name" xml:space="preserve"> 
    156     <value>SchedulerPanel</value> 
    157   </data> 
    158149  <data name="schedulerColNextRun.Width" type="System.Int32, mscorlib"> 
    159150    <value>200</value> 
    160151  </data> 
    161   <data name="&gt;&gt;titleLbl.Type" xml:space="preserve"> 
    162     <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     152  <data name="&gt;&gt;scheduler.Type" xml:space="preserve"> 
     153    <value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    163154  </data> 
    164155  <data name="scheduler.Size" type="System.Drawing.Size, System.Drawing"> 
     
    175166    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    176167  </data> 
    177   <data name="&gt;&gt;titleLbl.ZOrder" xml:space="preserve"> 
    178     <value>2</value> 
    179   </data> 
    180168  <data name="&gt;&gt;content.Name" xml:space="preserve"> 
    181169    <value>content</value> 
    182170  </data> 
     171  <data name="&gt;&gt;content.Parent" xml:space="preserve"> 
     172    <value>$this</value> 
     173  </data> 
    183174  <data name="runNowToolStripMenuItem.Text" xml:space="preserve"> 
    184175    <value>Run Now</value> 
    185   </data> 
    186   <data name="&gt;&gt;editTaskToolStripMenuItem.Type" xml:space="preserve"> 
    187     <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    188176  </data> 
    189177  <data name="&gt;&gt;schedulerMenu.Name" xml:space="preserve"> 
     
    209197    <value>content</value> 
    210198  </data> 
    211   <data name="schedulerColStatus.Width" type="System.Int32, mscorlib"> 
    212     <value>200</value> 
    213   </data> 
    214   <data name="titleLbl.Text" xml:space="preserve"> 
    215     <value>Erase Schedule</value> 
     199  <data name="&gt;&gt;titleLbl.ZOrder" xml:space="preserve"> 
     200    <value>2</value> 
    216201  </data> 
    217202  <data name="&gt;&gt;schedulerProgress.Type" xml:space="preserve"> 
    218203    <value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    219204  </data> 
     205  <data name="schedulerProgress.Visible" type="System.Boolean, mscorlib"> 
     206    <value>False</value> 
     207  </data> 
    220208  <data name="&gt;&gt;titleIcon.Name" xml:space="preserve"> 
    221209    <value>titleIcon</value> 
     
    227215    <value>Cancel Task</value> 
    228216  </data> 
     217  <data name="&gt;&gt;titleIcon.Parent" xml:space="preserve"> 
     218    <value>$this</value> 
     219  </data> 
    229220  <data name="&gt;&gt;schedulerMenu.Type" xml:space="preserve"> 
    230221    <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     
    233224    <value>schedulerColStatus</value> 
    234225  </data> 
    235   <data name="&gt;&gt;$this.Type" xml:space="preserve"> 
    236     <value>Eraser.BasePanel, Eraser, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value> 
    237   </data> 
    238   <data name="viewTaskLogToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> 
    239     <value>149, 22</value> 
     226  <data name="&gt;&gt;titleLbl.Type" xml:space="preserve"> 
     227    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     228  </data> 
     229  <data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing"> 
     230    <value>146, 6</value> 
     231  </data> 
     232  <data name="&gt;&gt;viewTaskLogToolStripMenuItem.Type" xml:space="preserve"> 
     233    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    240234  </data> 
    241235  <data name="scheduler.Groups2" mimetype="application/x-microsoft.net.object.binary.base64"> 
     
    271265    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    272266  </data> 
     267  <data name="&gt;&gt;schedulerColNextRun.Type" xml:space="preserve"> 
     268    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     269  </data> 
    273270  <data name="&gt;&gt;toolStripSeparator2.Type" xml:space="preserve"> 
    274271    <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     
    283280    <value>Status</value> 
    284281  </data> 
     282  <data name="titleLbl.Text" xml:space="preserve"> 
     283    <value>Erase Schedule</value> 
     284  </data> 
     285  <data name="scheduler.Location" type="System.Drawing.Point, System.Drawing"> 
     286    <value>0, 0</value> 
     287  </data> 
     288  <data name="&gt;&gt;schedulerColName.Name" xml:space="preserve"> 
     289    <value>schedulerColName</value> 
     290  </data> 
    285291  <data name="&gt;&gt;toolStripSeparator1.Name" xml:space="preserve"> 
    286292    <value>toolStripSeparator1</value> 
    287293  </data> 
    288   <data name="scheduler.Location" type="System.Drawing.Point, System.Drawing"> 
    289     <value>0, 0</value> 
    290   </data> 
    291   <data name="&gt;&gt;schedulerColName.Name" xml:space="preserve"> 
    292     <value>schedulerColName</value> 
    293   </data> 
    294   <data name="&gt;&gt;viewTaskLogToolStripMenuItem.Type" xml:space="preserve"> 
    295     <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    296   </data> 
    297294  <data name="&gt;&gt;viewTaskLogToolStripMenuItem.Name" xml:space="preserve"> 
    298295    <value>viewTaskLogToolStripMenuItem</value> 
     
    304301    <value>0</value> 
    305302  </data> 
     303  <data name="&gt;&gt;schedulerColStatus.Type" xml:space="preserve"> 
     304    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     305  </data> 
    306306  <data name="schedulerProgress.TabIndex" type="System.Int32, mscorlib"> 
    307307    <value>1</value> 
    308308  </data> 
     309  <data name="viewTaskLogToolStripMenuItem.Text" xml:space="preserve"> 
     310    <value>View Task Log</value> 
     311  </data> 
     312  <data name="&gt;&gt;titleIcon.Type" xml:space="preserve"> 
     313    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     314  </data> 
     315  <data name="schedulerProgress.Location" type="System.Drawing.Point, System.Drawing"> 
     316    <value>481, 28</value> 
     317  </data> 
     318  <data name="&gt;&gt;editTaskToolStripMenuItem.Name" xml:space="preserve"> 
     319    <value>editTaskToolStripMenuItem</value> 
     320  </data> 
     321  <data name="&gt;&gt;runNowToolStripMenuItem.Type" xml:space="preserve"> 
     322    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     323  </data> 
     324  <data name="&gt;&gt;cancelTaskToolStripMenuItem.Name" xml:space="preserve"> 
     325    <value>cancelTaskToolStripMenuItem</value> 
     326  </data> 
     327  <data name="schedulerColName.Width" type="System.Int32, mscorlib"> 
     328    <value>280</value> 
     329  </data> 
     330  <data name="deleteTaskToolStripMenuItem.Text" xml:space="preserve"> 
     331    <value>Delete Task</value> 
     332  </data> 
     333  <data name="deleteTaskToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> 
     334    <value>149, 22</value> 
     335  </data> 
     336  <data name="&gt;&gt;schedulerColName.Type" xml:space="preserve"> 
     337    <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     338  </data> 
     339  <data name="schedulerProgress.Size" type="System.Drawing.Size, System.Drawing"> 
     340    <value>200, 23</value> 
     341  </data> 
    309342  <data name="&gt;&gt;schedulerProgress.Name" xml:space="preserve"> 
    310343    <value>schedulerProgress</value> 
    311344  </data> 
    312   <data name="&gt;&gt;content.Parent" xml:space="preserve"> 
     345  <data name="&gt;&gt;deleteTaskToolStripMenuItem.Name" xml:space="preserve"> 
     346    <value>deleteTaskToolStripMenuItem</value> 
     347  </data> 
     348  <data name="&gt;&gt;toolStripSeparator2.Name" xml:space="preserve"> 
     349    <value>toolStripSeparator2</value> 
     350  </data> 
     351  <data name="&gt;&gt;editTaskToolStripMenuItem.Type" xml:space="preserve"> 
     352    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
     353  </data> 
     354  <data name="&gt;&gt;$this.Name" xml:space="preserve"> 
     355    <value>SchedulerPanel</value> 
     356  </data> 
     357  <data name="&gt;&gt;titleLbl.Parent" xml:space="preserve"> 
    313358    <value>$this</value> 
    314359  </data> 
    315   <data name="schedulerProgress.Location" type="System.Drawing.Point, System.Drawing"> 
    316     <value>481, 28</value> 
    317   </data> 
    318   <data name="&gt;&gt;editTaskToolStripMenuItem.Name" xml:space="preserve"> 
    319     <value>editTaskToolStripMenuItem</value> 
    320   </data> 
    321   <data name="&gt;&gt;runNowToolStripMenuItem.Type" xml:space="preserve"> 
    322     <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    323   </data> 
    324   <data name="&gt;&gt;cancelTaskToolStripMenuItem.Name" xml:space="preserve"> 
    325     <value>cancelTaskToolStripMenuItem</value> 
     360  <data name="viewTaskLogToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> 
     361    <value>149, 22</value> 
     362  </data> 
     363  <data name="schedulerColName.Text" xml:space="preserve"> 
     364    <value>Task Name</value> 
    326365  </data> 
    327366  <data name="&gt;&gt;titleIcon.ZOrder" xml:space="preserve"> 
    328367    <value>1</value> 
    329   </data> 
    330   <data name="deleteTaskToolStripMenuItem.Text" xml:space="preserve"> 
    331     <value>Delete Task</value> 
    332   </data> 
    333   <data name="deleteTaskToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing"> 
    334     <value>149, 22</value> 
    335   </data> 
    336   <data name="&gt;&gt;schedulerColStatus.Type" xml:space="preserve"> 
    337     <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    338   </data> 
    339   <data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing"> 
    340     <value>146, 6</value> 
    341   </data> 
    342   <data name="&gt;&gt;scheduler.Type" xml:space="preserve"> 
    343     <value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    344   </data> 
    345   <data name="&gt;&gt;deleteTaskToolStripMenuItem.Name" xml:space="preserve"> 
    346     <value>deleteTaskToolStripMenuItem</value> 
    347   </data> 
    348   <data name="&gt;&gt;toolStripSeparator2.Name" xml:space="preserve"> 
    349     <value>toolStripSeparator2</value> 
    350   </data> 
    351   <data name="&gt;&gt;titleIcon.Parent" xml:space="preserve"> 
    352     <value>$this</value> 
    353   </data> 
    354   <data name="&gt;&gt;schedulerColNextRun.Type" xml:space="preserve"> 
    355     <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 
    356   </data> 
    357   <data name="&gt;&gt;titleLbl.Parent" xml:space="preserve"> 
    358     <value>$this</value> 
    359   </data> 
    360   <data name="schedulerProgress.Visible" type="System.Boolean, mscorlib"> 
    361     <value>False</value> 
    362   </data> 
    363   <data name="schedulerColName.Text" xml:space="preserve"> 
    364     <value>Task Name</value> 
    365   </data> 
    366   <data name="viewTaskLogToolStripMenuItem.Text" xml:space="preserve"> 
    367     <value>View Task Log</value> 
    368368  </data> 
    369369  <data name="titleLbl.Size" type="System.Drawing.Size, System.Drawing"> 
  • branches/eraser6/Eraser/Strings.NL.resx

    r481 r482  
    157157    <value>{0} van {1}</value> 
    158158  </data> 
    159   <data name="{0} left" xml:space="preserve"> 
    160     <value>{0} rechts</value> 
    161   </data> 
    162   <data name="Total: {0}%" xml:space="preserve"> 
    163     <value>Totaal: {0}%</value> 
     159  <data name="{0:hh:mm:ss} left" xml:space="preserve"> 
     160    <value>(Untranslated)</value> 
     161  </data> 
     162  <data name="Total: {0,2:#0.00%}" xml:space="preserve"> 
     163    <value>(Untranslated)</value> 
    164164  </data> 
    165165  <data name="Completed with warnings" xml:space="preserve"> 
  • branches/eraser6/Eraser/Strings.en.resx

    r481 r482  
    157157    <value>{0} out of {1}</value> 
    158158  </data> 
    159   <data name="{0} left" xml:space="preserve"> 
    160     <value>{0} left</value> 
    161   </data> 
    162   <data name="Total: {0}%" xml:space="preserve"> 
    163     <value>Total: {0}%</value> 
     159  <data name="{0:hh:mm:ss} left" xml:space="preserve"> 
     160    <value>{0:hh:mm:ss} left</value> 
     161  </data> 
     162  <data name="Total: {0,2:#0.00%}" xml:space="preserve"> 
     163    <value>Total: {0,2:#0.00%}</value> 
    164164  </data> 
    165165  <data name="Completed with warnings" xml:space="preserve"> 
  • branches/eraser6/Eraser/Strings.resx

    r481 r482  
    157157    <value>{0} out of {1}</value> 
    158158  </data> 
    159   <data name="{0} left" xml:space="preserve"> 
    160     <value>{0} left</value> 
    161   </data> 
    162   <data name="Total: {0}%" xml:space="preserve"> 
    163     <value>Total: {0}%</value> 
     159  <data name="{0:hh:mm:ss} left" xml:space="preserve"> 
     160    <value>{0:hh:mm:ss} left</value> 
     161  </data> 
     162  <data name="Total: {0,2:#0.00%}" xml:space="preserve"> 
     163    <value>Total: {0,2:#0.00%}</value> 
    164164  </data> 
    165165  <data name="Completed with warnings" xml:space="preserve"> 
  • branches/eraser6/Manager/DirectExecutor.cs

    r475 r482  
    303303 
    304304                        //Run the task 
     305                        EraseProgressManager progress = new EraseProgressManager(currentTask); 
    305306                        foreach (Task.ErasureTarget target in task.Targets) 
    306307                            try 
    307308                            { 
     309                                progress.Event.currentTarget = target; 
     310                                ++progress.Event.currentTargetIndex; 
    308311                                if (target is Task.UnusedSpace) 
    309                                     EraseUnusedSpace(task, (Task.UnusedSpace)target); 
     312                                    EraseUnusedSpace(task, (Task.UnusedSpace)target, progress); 
    310313                                else if (target is Task.FilesystemObject) 
    311                                     EraseFilesystemObject(task, (Task.FilesystemObject)target); 
     314                                    EraseFilesystemObject(task, (Task.FilesystemObject)target, progress); 
    312315                                else if (target is Task.RecycleBin) 
    313316                                    EraseRecycleBin(task, (Task.RecycleBin)target); 
     
    353356        } 
    354357 
    355         private class WriteStatistics 
    356         { 
    357             public WriteStatistics() 
     358        /// <summary> 
     359        /// Provides a common interface to track the progress made by the Erase functions. 
     360        /// </summary> 
     361        private class EraseProgressManager 
     362        { 
     363            /// <summary> 
     364            /// Constructor. 
     365            /// </summary> 
     366            public EraseProgressManager(Task task) 
    358367            { 
    359368                startTime = DateTime.Now; 
    360             } 
    361  
     369                Event = new TaskProgressEventArgs(task); 
     370            } 
     371 
     372            /// <summary> 
     373            /// Computes the speed of the erase based on the previous 10 seconds. 
     374            /// </summary> 
    362375            public int Speed 
    363376            { 
     
    371384 
    372385                    lastSpeedCalc = DateTime.Now; 
    373                     lastSpeed = (int)(dataWritten / (DateTime.Now - startTime).TotalSeconds); 
     386                    lastSpeed = (int)(DataWritten / (DateTime.Now - startTime).TotalSeconds); 
    374387                    return lastSpeed; 
    375388                } 
    376389            } 
    377390 
     391            /// <summary> 
     392            /// Tracks the amount of data written, to determine the speed of the erase. 
     393            /// </summary> 
    378394            public long DataWritten 
    379395            { 
    380                 get { return dataWritten; } 
    381                 set { dataWritten = value; } 
     396                get; 
     397                set; 
     398            } 
     399 
     400            /// <summary> 
     401            /// The TaskProgressEventArgs object representing the progress of the current 
     402            /// task. 
     403            /// </summary> 
     404            public TaskProgressEventArgs Event 
     405            { 
     406                get; 
     407                set; 
    382408            } 
    383409 
    384410            private DateTime startTime; 
    385411            private DateTime lastSpeedCalc; 
    386             private long dataWritten; 
    387412            private int lastSpeed; 
    388413        } 
     
    427452        /// Executes a unused space erase. 
    428453        /// </summary> 
     454        /// <param name="task">The task currently being executed</param> 
    429455        /// <param name="target">The target of the unused space erase.</param> 
    430         private void EraseUnusedSpace(Task task, Task.UnusedSpace target) 
     456        /// <param name="progress">The progress manager object managing the progress of the task</param> 
     457        private void EraseUnusedSpace(Task task, Task.UnusedSpace target, EraseProgressManager progress) 
    431458        { 
    432459            //Check for sufficient privileges to run the unused space erasure. 
     
    455482                    ManagerLibrary.Instance.Settings.DefaultUnusedSpaceErasureMethod); 
    456483 
    457             TaskProgressEventArgs eventArgs = new TaskProgressEventArgs(task, 0, 0); 
    458             eventArgs.currentTarget = target; 
    459             eventArgs.currentItemName = "Cluster tips"; 
    460             eventArgs.totalPasses = method.Passes; 
    461             eventArgs.timeLeft = -1; 
    462             task.OnProgressChanged(eventArgs); 
    463  
    464484            //Erase the cluster tips of every file on the drive. 
    465485            if (target.EraseClusterTips) 
    466486            { 
     487                progress.Event.currentItemName = "Cluster tips"; 
     488                progress.Event.currentTargetTotalPasses = method.Passes; 
     489                progress.Event.timeLeft = -1; 
     490                task.OnProgressChanged(progress.Event); 
     491                 
    467492                EraseClusterTips(task, target, method, 
    468493                    delegate(int currentFile, string currentFilePath, int totalFiles) 
    469494                    { 
    470                         eventArgs.currentItemName = "(Tips) " + currentFilePath; 
    471                         eventArgs.currentItemProgress = (int)((float)currentFile / totalFiles * 100); 
    472                         eventArgs.overallProgress = eventArgs.CurrentItemProgress / 10; 
    473                         task.OnProgressChanged(eventArgs); 
     495                        progress.Event.currentItemName = "(Tips) " + currentFilePath; 
     496                        progress.Event.currentItemProgress = (float)currentFile / totalFiles; 
     497                        progress.Event.CurrentTargetProgress = progress.Event.CurrentItemProgress / 10; 
     498                        task.OnProgressChanged(progress.Event); 
    474499                    } 
    475500                ); 
     
    494519 
    495520                //Determine the total amount of data that needs to be written. 
    496                 WriteStatistics statistics = new WriteStatistics(); 
    497521                VolumeInfo volInfo = VolumeInfo.FromMountpoint(target.Drive); 
    498522                long totalSize = method.CalculateEraseDataSize(null, volInfo.TotalFreeSpace); 
    499523 
    500524                //Continue creating files while there is free space. 
    501                 eventArgs.currentItemName = "Unused space"; 
    502                 task.OnProgressChanged(eventArgs); 
     525                progress.Event.currentItemName = "Unused space"; 
     526                task.OnProgressChanged(progress.Event); 
    503527                while (volInfo.AvailableFreeSpace > 0) 
    504528                { 
     
    524548                            delegate(long lastWritten, int currentPass) 
    525549                            { 
    526                                 statistics.DataWritten += lastWritten; 
    527                                 eventArgs.currentPass = currentPass; 
    528                                 eventArgs.currentItemProgress = (int)(statistics.DataWritten * 100 / totalSize); 
    529                                 eventArgs.overallProgress = (int)((10 + eventArgs.currentItemProgress * 0.8)); 
    530  
    531                                 if (statistics.Speed == 0) 
    532                                     eventArgs.timeLeft = -1; 
     550                                progress.DataWritten += lastWritten; 
     551                                progress.Event.currentItemPass = currentPass; 
     552                                progress.Event.currentItemProgress = (float)progress.DataWritten / totalSize; 
     553                                if (target.EraseClusterTips) 
     554                                    progress.Event.CurrentTargetProgress = (float) 
     555                                        (0.1 + progress.Event.currentItemProgress * 0.8); 
    533556                                else 
    534                                     eventArgs.timeLeft = (int)((totalSize - statistics.DataWritten) / statistics.Speed); 
    535                                 task.OnProgressChanged(eventArgs); 
     557                                    progress.Event.CurrentTargetProgress = (float) 
     558                                        (progress.Event.currentItemProgress * 0.9); 
     559 
     560                                if (progress.Speed == 0) 
     561                                    progress.Event.timeLeft = -1; 
     562                                else 
     563                                    progress.Event.timeLeft = (int) 
     564                                        ((totalSize - progress.DataWritten) / progress.Speed); 
     565                                task.OnProgressChanged(progress.Event); 
    536566 
    537567                                lock (currentTask) 
     
    544574 
    545575                //Erase old file system records 
    546                 eventArgs.currentItemName = "Old file system records"; 
    547                 task.OnProgressChanged(eventArgs); 
     576                progress.Event.currentItemName = "Old file system records"; 
     577                task.OnProgressChanged(progress.Event); 
    548578                EraseFilesystemRecords(info, method); 
    549579            } 
    550580            finally 
    551581            { 
    552                 eventArgs.currentItemName = "Removing temporary files"; 
    553                 task.OnProgressChanged(eventArgs); 
     582                progress.Event.currentItemName = "Removing temporary files"; 
     583                task.OnProgressChanged(progress.Event); 
    554584 
    555585                //Remove the folder holding all our temporary files. 
     
    797827            List<Task.RecycleBin.DirectoryDictionary> directories = target.GetPaths(task); 
    798828 
    799             TaskProgressEventArgs eventArgs = new TaskProgressEventArgs(task, 0, 0); 
     829            TaskProgressEventArgs eventArgs = new TaskProgressEventArgs(task); 
    800830 
    801831            //Record the start of the erasure pass so we can calculate speed of erasures 
    802             WriteStatistics statistics = new WriteStatistics(); 
     832            EraseProgressManager statistics = new EraseProgressManager(task); 
    803833                         
    804834            //Get the erasure method if the user specified he wants the default. 
     
    843873                                    { 
    844874                                        statistics.DataWritten += lastWritten; 
    845                                         eventArgs.currentPass = currentPass; 
     875                                        eventArgs.currentItemPass = currentPass; 
    846876 
    847877                                        eventArgs.currentItemProgress = (int) 
     
    900930        /// Erases a file or folder on the volume. 
    901931        /// </summary> 
     932        /// <param name="task">The task currently being processed.</param> 
    902933        /// <param name="target">The target of the erasure.</param> 
    903         private void EraseFilesystemObject(Task task, Task.FilesystemObject target) 
     934        /// <param name="progress">The progress manager for the current task.</param> 
     935        private void EraseFilesystemObject(Task task, Task.FilesystemObject target, 
     936            EraseProgressManager progress) 
    904937        { 
    905938            //Retrieve the list of files to erase. 
    906939            long dataTotal = 0; 
    907940            List<string> paths = target.GetPaths(out dataTotal); 
    908             TaskProgressEventArgs eventArgs = new TaskProgressEventArgs(task, 0, 0); 
    909941 
    910942            //Get the erasure method if the user specified he wants the default. 
    911943            ErasureMethod method = target.Method; 
    912944            if (method == ErasureMethodManager.Default) 
    913                 method = ErasureMethodManager.GetInstance(ManagerLibrary.Instance.Settings.DefaultFileErasureMethod); 
     945                method = ErasureMethodManager.GetInstance( 
     946                    ManagerLibrary.Instance.Settings.DefaultFileErasureMethod); 
    914947 
    915948            //Calculate the total amount of data required to finish the wipe. 
    916949            dataTotal = method.CalculateEraseDataSize(paths, dataTotal); 
    917950 
    918             //Record the start of the erasure pass so we can calculate speed of erasures 
    919             WriteStatistics statistics = new WriteStatistics(); 
    920  
    921951            //Iterate over every path, and erase the path. 
    922952            for (int i = 0; i < paths.Count; ++i) 
    923953            { 
    924954                //Update the task progress 
    925                 eventArgs.overallProgress = (i * 100) / paths.Count; 
    926                 eventArgs.currentTarget = target; 
    927                 eventArgs.currentItemName = paths[i]; 
    928                 eventArgs.currentItemProgress = 0; 
    929                 eventArgs.totalPasses = method.Passes; 
    930                 task.OnProgressChanged(eventArgs); 
     955                progress.Event.CurrentTargetProgress = i / (float)paths.Count; 
     956                progress.Event.currentTarget = target; 
     957                progress.Event.currentItemName = paths[i]; 
     958                progress.Event.currentItemProgress = 0; 
     959                progress.Event.currentTargetTotalPasses = method.Passes; 
     960                task.OnProgressChanged(progress.Event); 
    931961 
    932962                //Make sure the file does not have any attributes which may affect 
     
    969999                                delegate(long lastWritten, int currentPass) 
    9701000                                { 
    971                                     statistics.DataWritten += lastWritten; 
    972                                     eventArgs.currentPass = currentPass; 
    973                                     eventArgs.currentItemProgress = (int) 
    974                                         ((itemWritten += lastWritten) * 100 / itemTotal); 
    975                                     eventArgs.overallProgress = (int) 
    976                                         (statistics.DataWritten * 100 / dataTotal); 
    977  
    978                                     if (statistics.Speed != 0) 
    979                                         eventArgs.timeLeft = (int) 
    980                                             (dataTotal - statistics.DataWritten) / statistics.Speed; 
     1001                                    dataTotal -= lastWritten; 
     1002                                    progress.DataWritten += lastWritten; 
     1003                                    progress.Event.currentItemPass = currentPass; 
     1004                                    progress.Event.currentItemProgress = (float) 
     1005                                        ((itemWritten += lastWritten) / (float)itemTotal); 
     1006                                    progress.Event.CurrentTargetProgress = 
     1007                                        (i + progress.Event.currentItemProgress) / 
     1008                                        (float)paths.Count; 
     1009 
     1010                                    if (progress.Speed != 0) 
     1011                                        progress.Event.timeLeft = (int) 
     1012                                            (dataTotal / progress.Speed); 
    9811013                                    else 
    982                                         eventArgs.timeLeft = -1; 
    983                                     task.OnProgressChanged(eventArgs); 
     1014                                        progress.Event.timeLeft = -1; 
     1015                                    task.OnProgressChanged(progress.Event); 
    9841016 
    9851017                                    lock (currentTask) 
  • branches/eraser6/Manager/Task.cs

    r445 r482  
    707707        /// </summary> 
    708708        /// <param name="task">The task being run.</param> 
    709         /// <param name="overallProgress">The overall progress of the task.</param> 
    710         /// <param name="currentItemProgress">The progress for the individual 
    711         /// component of the task.</param> 
    712         public TaskProgressEventArgs(Task task, int overallProgress, 
    713             int currentItemProgress) 
     709        public TaskProgressEventArgs(Task task) 
    714710            : base(task) 
    715711        { 
    716             this.overallProgress = overallProgress; 
    717             this.currentItemProgress = currentItemProgress; 
    718         } 
    719  
    720         /// <summary> 
    721         /// A number from 0 to 100 detailing the overall progress of the task. 
    722         /// </summary> 
    723         public int OverallProgress 
     712        } 
     713 
     714        /// <summary> 
     715        /// A number from 0 to 1 detailing the overall progress of the task. 
     716        /// </summary> 
     717        public float OverallProgress 
    724718        { 
    725719            get { return overallProgress; } 
     
    729723        /// The amount of time left for the operation to complete, in seconds. 
    730724        /// </summary> 
    731         public int TimeLeft 
    732         { 
    733             get { return timeLeft; } 
     725        public TimeSpan TimeLeft 
     726        { 
     727            get { return new TimeSpan(timeLeft * 10000000L); } 
    734728        } 
    735729 
     
    743737 
    744738        /// <summary> 
    745         /// A number from 0 to 100 detailing the overall progress of the item. 
    746         /// </summary> 
    747         public int CurrentItemProgress 
    748         { 
    749             get { return currentItemProgress; } 
    750         } 
    751  
    752         /// <summary> 
    753         /// The file name of the item being erased. 
    754         /// </summary> 
    755         public string CurrentItemName 
    756         { 
    757             get { return currentItemName; } 
    758         } 
    759  
    760         /// <summary> 
    761         /// The pass number of a multi-pass erasure method. 
    762         /// </summary> 
    763         public int CurrentPass 
    764         { 
    765             get { return currentPass; } 
     739        /// The current index of the target. 
     740        /// </summary> 
     741        public int CurrentTargetIndex 
     742        { 
     743            get { return currentTargetIndex; } 
    766744        } 
    767745 
     
    770748        /// completed. 
    771749        /// </summary> 
    772         public int TotalPasses 
    773         { 
    774             get { return totalPasses; } 
    775         } 
    776  
    777         internal int overallProgress; 
    778         internal int timeLeft; 
     750        public int CurrentTargetTotalPasses 
     751        { 
     752            get { return currentTargetTotalPasses; } 
     753        } 
     754 
     755        /// <summary> 
     756        /// A number from 0 to 1 detailing the overall progress of the item. 
     757        /// </summary> 
     758        public float CurrentItemProgress 
     759        { 
     760            get { return currentItemProgress; } 
     761        } 
     762 
     763        /// <summary> 
     764        /// The file name of the item being erased. 
     765        /// </summary> 
     766        public string CurrentItemName 
     767        { 
     768            get { return currentItemName; } 
     769        } 
     770 
     771        /// <summary> 
     772        /// The pass number of a multi-pass erasure method. 
     773        /// </summary> 
     774        public int CurrentItemPass 
     775        { 
     776            get { return currentItemPass; } 
     777        } 
     778 
     779        internal float CurrentTargetProgress 
     780        { 
     781            set 
     782            { 
     783                overallProgress = Math.Min( 
     784                    (value + (float)(CurrentTargetIndex - 1)) / Task.Targets.Count, 
     785                    1.0f); 
     786            } 
     787        } 
     788 
     789        private float overallProgress = 0.0f; 
     790        internal int timeLeft = -1; 
     791 
    779792        internal Task.ErasureTarget currentTarget; 
    780         internal int currentItemProgress; 
     793        internal int currentTargetIndex = 0; 
     794        internal int currentTargetTotalPasses; 
     795 
     796        internal float currentItemProgress = 0.0f; 
    781797        internal string currentItemName; 
    782         internal int currentPass = 1; 
    783         internal int totalPasses; 
     798        internal int currentItemPass = 1; 
    784799    } 
    785800} 
Note: See TracChangeset for help on using the changeset viewer.