Changeset 486


Ignore:
Timestamp:
11/10/2008 9:03:31 AM (6 years ago)
Author:
lowjoel
Message:

-The ErasureTarget?.Method property should always return a valid Erasure method. Therefore, to check if the user specified to use defaults, I've added the MethodDefined? property
-Fixed the Task data selection form: the erasure method was not set even if it was defined

Location:
branches/eraser6
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs

    r460 r486  
    128128            { 
    129129                //Set the erasure method. 
    130                 foreach (object item in method.Items) 
    131                     if (item == value.Method) 
    132                         method.SelectedItem = item; 
     130                if (value.MethodDefined) 
     131                { 
     132                    foreach (object item in method.Items) 
     133                        if (((ErasureMethod)item).GUID == value.Method.GUID) 
     134                            method.SelectedItem = item; 
     135                } 
     136                else 
     137                    method.SelectedIndex = 0; 
    133138 
    134139                //Then the data to be erased. 
  • branches/eraser6/Eraser/TaskPropertiesForm.cs

    r460 r486  
    135135            { 
    136136                ListViewItem item = data.Items.Add(target.UIText); 
    137                 item.SubItems.Add(target.Method.Name); 
     137                item.SubItems.Add(target.MethodDefined ? target.Method.Name : S._("(default)")); 
    138138            } 
    139139 
     
    204204                    Task.ErasureTarget target = form.Target; 
    205205                    ListViewItem item = data.Items.Add(target.UIText); 
    206                      
    207                     item.SubItems.Add(target.Method.Name); 
     206 
     207                    item.SubItems.Add(target.MethodDefined ? target.Method.Name : S._("(default)")); 
    208208                    task.Targets.Add(target); 
    209209                    errorProvider.Clear(); 
     
    229229                    task.Targets[item.Index] = target; 
    230230                    item.Text = target.UIText; 
    231                     item.SubItems[1].Text = target.Method.Name; 
     231                    item.SubItems[1].Text = target.MethodDefined ? target.Method.Name : S._("(default)"); 
    232232                } 
    233233            } 
  • branches/eraser6/Manager/Task.cs

    r485 r486  
    7272            /// task type. 
    7373            /// </summary> 
    74             public ErasureMethod Method 
    75             { 
    76                 get { return method; } 
    77                 set { method = value; } 
     74            public abstract ErasureMethod Method 
     75            { 
     76                get; 
     77                set; 
     78            } 
     79 
     80            /// <summary> 
     81            /// Checks whether a method has been selected for this target. This is 
     82            /// because the Method property will return non-default erasure methods 
     83            /// only. 
     84            /// </summary> 
     85            public bool MethodDefined 
     86            { 
     87                get 
     88                { 
     89                    return method != ErasureMethodManager.Default; 
     90                } 
    7891            } 
    7992 
     
    8699            } 
    87100 
    88             private ErasureMethod method = null; 
     101            /// <summary> 
     102            /// Retrieves the amount of data that needs to be written in order to 
     103            /// complete the erasure. 
     104            /// </summary> 
     105            public abstract long TotalData 
     106            { 
     107                get; 
     108            } 
     109 
     110            protected ErasureMethod method = null; 
    89111        } 
    90112 
     
    154176            } 
    155177 
     178            public override ErasureMethod Method 
     179            { 
     180                get 
     181                { 
     182                    if (method != ErasureMethodManager.Default) 
     183                        return method; 
     184                    return ErasureMethodManager.GetInstance( 
     185                        ManagerLibrary.Instance.Settings.DefaultFileErasureMethod); 
     186                } 
     187                set 
     188                { 
     189                    method = value; 
     190                } 
     191            } 
     192 
    156193            public override string UIText 
    157194            { 
    158195                get { return Path; } 
     196            } 
     197 
     198            public override long TotalData 
     199            { 
     200                get 
     201                { 
     202                    long totalSize = 0; 
     203                    List<string> paths = GetPaths(out totalSize); 
     204                    return Method.CalculateEraseDataSize(paths, totalSize); 
     205                } 
    159206            } 
    160207 
     
    192239            } 
    193240 
     241            public override ErasureMethod Method 
     242            { 
     243                get 
     244                { 
     245                    if (method != ErasureMethodManager.Default) 
     246                        return method; 
     247                    return ErasureMethodManager.GetInstance( 
     248                        ManagerLibrary.Instance.Settings.DefaultUnusedSpaceErasureMethod); 
     249                } 
     250                set 
     251                { 
     252                    method = value; 
     253                } 
     254            } 
     255 
    194256            public override string UIText 
    195257            { 
    196258                get { return string.Format("Unused disk space ({0})", Drive); } 
     259            } 
     260 
     261            public override long TotalData 
     262            { 
     263                get 
     264                { 
     265                    VolumeInfo info = VolumeInfo.FromMountpoint(Drive); 
     266                    return Method.CalculateEraseDataSize(null, info.AvailableFreeSpace); 
     267                } 
    197268            } 
    198269 
     
    683754        public TimeSpan TimeLeft 
    684755        { 
    685             get { return new TimeSpan(timeLeft * 10000000L); } 
     756            get { return timeLeft; } 
    686757        } 
    687758 
     
    746817 
    747818        private float overallProgress = 0.0f; 
    748         internal int timeLeft = -1; 
     819        internal TimeSpan timeLeft = new TimeSpan(0, 0, -1); 
    749820 
    750821        internal Task.ErasureTarget currentTarget; 
Note: See TracChangeset for help on using the changeset viewer.