03:27 Changeset [440] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs


03:25 Changeset [439] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

Rescheduled (recurring) tasks need to be removed from the priority queue for tasks since their placement may change.

03:20 Changeset [438] by lowjoel
  • branches/eraser6/Eraser/TaskPropertiesForm.Designer.cs

The minimum number of months between runs should be 1!

03:19 Changeset [437] by lowjoel
  • branches/eraser6/Eraser/TaskPropertiesForm.cs

Select the appropriate scheduling checkbox when a task is loaded into the task editor.

03:07 Ticket #54 (FAT directory entries not cleared.) created by Joel
In DirectExecutor.EraseUnusedSpace, directory entries are not cleared. …
02:42 Changeset [436] by lowjoel
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Util/Util.csproj
  • branches/eraser6/Util/VolumeInfo.cs

Renamed the "Drive" class to the "VolumeInfo?" class since the latter is a more accurate description of what the class does.

02:36 Ticket #53 (Missed task rescheduling) created by Joel
Allow the user to decide whether he wants missed tasks to run immediately …
02:32 Ticket #24 (Next Scheduled run) closed by Joel
fixed: Completely Implemented in r435.
02:32 Changeset [435] by lowjoel
  • branches/eraser6/Manager/Schedule.cs

-Set the DaysOfWeek? enumeration to use the values in the DayOfWeek? enumeration, so that corresponding values can be computed from the other.
-Implemented Monthly scheduling.

02:23 Changeset [434] by lowjoel
  • branches/eraser6/Manager/Schedule.cs

Implemented Weekly scheduling.

01:23 Ticket #3 (Scheduler exits on Main Frame Close) closed by Joel
fixed: This behaviour is negated in v6 since the notification area icon will …
01:19 Ticket #51 (Support non-drive mountpoints) closed by Joel
fixed: Implemented in r401 to r407.
01:18 Changeset [433] by lowjoel
  • branches/eraser6/Eraser/Resources/AboutDialog.png

Replaced the About dialog bitmap - Dennis added a beta # to the bitmap.

01:15 Ticket #29 (Allow Eraser to be minimized to the system tray) closed by Joel


15:25 Changeset [432] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj

Replaced the filenames of the erasure animation.

15:24 Changeset [431] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx

Have a "hide when minimised" behaviour to Eraser.

15:22 Changeset [430] by lowjoel
  • branches/eraser6/Eraser/Resources/BackgroundLogo.png

Replaced the Background logo - Dennis added a beta # to the logo.

15:20 Changeset [429] by lowjoel
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/Manager/Settings.cs

Changed the Settings for plugins API. Now you can just call Settings.PluginSettings? and retrieve the dictionary object.

13:17 Changeset [428] by lowjoel
  • branches/eraser6/Dialog Designs/About Dialog.psd

Dennis made a few changes for the versioning.


15:04 Changeset [427] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx

Allow for the minimising to the notification area.

14:27 Ticket #26 (Custom erasure methods) closed by Joel
duplicate: Superseded by #52.
14:25 Ticket #17 (Allow custom erasure methods to be exported) closed by Joel
duplicate: Superseded by #52.
14:23 Ticket #52 (Implement custom method editor) created by Joel
The custom method editor in v5 was alright to use, so it should be ported …
12:10 Changeset [426] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.resx

-Added a context menu for the notification area icon
-Disable the toolbar menu entries which are dummy for the moment.

11:56 Changeset [425] by lowjoel
  • branches/eraser6/Eraser/Strings.en.resx

These new strings can just use the culture-invariant text.

11:50 Changeset [424] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseCustom.cs

Check for the presence of the EraseCustom? key before trying to load the methods.

11:48 Changeset [423] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.nl.resx
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Eraser/Properties/Resources.Designer.cs
  • branches/eraser6/Eraser/Properties/Resources.resx
  • branches/eraser6/Eraser/Resources/NotifyIcon1.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon10.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon2.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon3.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon4.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon5.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon6.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon7.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon8.ico
  • branches/eraser6/Eraser/Resources/NotifyIcon9.ico
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Executor.cs

For fun's sake, I've implemented a system notification area icon. Like in v5 but with cooler icons. And the tray icon animates when a task is being executed.

11:02 Changeset [422] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Executor.cs
  • branches/eraser6/Manager/Schedule.cs

Implemented scheduled tasks: however only weekday and daily tasks.

10:32 Changeset [421] by lowjoel
  • branches/eraser6/Util/StreamInfo.cs

Fixed a wrong function declaration.

09:57 Changeset [420] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Manager/Settings.cs

Removed the settings changed event since after reimplementing a few bits of code I can't find any more use for them.

09:54 Changeset [419] by lowjoel
  • branches/eraser6/Eraser/SettingsPanel.cs

Register the SettingsPanel? as a Erasure method addition change event handler. This is so that when new erasure methods are defined they will appear in the list of erasure methods.

09:52 Changeset [418] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/ToolBar.cs
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Settings.cs

-Added a Method Registered event
-Standardised the delegate nomenclature. For an event Event:

-delegate is named EventFunction?
-event is named Event
-event executor is named OnEvent?

09:49 Changeset [417] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseFirstLast16KB.cs

Pardon me, that was not necessary.

09:47 Changeset [416] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseFirstLast16KB.cs

Register an event handler for the settings changed event from the FL16 class. It needs to be kept updated on the default erasure method.

09:46 Changeset [415] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseCustom.cs
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs

-Register all the defined custom erase methods at plugin load time.
-Also display the defined erasure methods when the plugin settings dialog is opened.

09:26 Changeset [414] by lowjoel
  • branches/eraser6/Manager/Plugins.cs

No need for the host to provide a register set of functions since we directly depend on the Manager assembly anyway.

09:02 Changeset [413] by lowjoel
  • branches/eraser6/Manager/Plugins.cs

Added an AssemblyResolve? handler since the Initialisation phase of plugins may require unserialisation. Loading plugins should be looked to for the assembly objects.

09:00 Changeset [412] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/Settings.cs

Redesigned the Manager.Settings class.
-The plugin settings are no longer kept in a single dictionary; instead, they are distributed to be dealt with by the implementer of the Settings class. The GetSettings? and SetSettings? functions now are overloaded internally such that these values along with the plugins' GUID are sent together to the implementer class. The implementer class then stores it directly. This prevents unnecessary resource utilisation for large plugins and for plugins which are disabled
-This new design also allows for the serialisation and unserialisation of plugin settings which are non-primitive types, since the settings are loaded only on the initialisation of the plugin, not the initialisation of the settings object
-Created a SettingsChanged? event for classes to register callback functions to. This is useful when classes need to know when a setting is changed. Currently unimplemented though.
-Load is now a protected internal function which implementer classes must implement, this allows for the refreshing of settings whenever the program is running.

08:54 Changeset [411] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseCustom.cs

Implemented custom erasure methods: the creation, storage, and retrieval bits.

06:26 Changeset [410] by lowjoel
  • branches/eraser6/Util/File.cs

SHGetFileInfo's SHFILEINFO structure should be declared as Unicode too.

06:25 Changeset [409] by lowjoel
  • branches/eraser6/Util/KernelAPI.cs

Use the Unicode version of GetStartupInfo?

06:24 Changeset [408] by lowjoel
  • branches/eraser6/Util/Drive.cs

Silly me. I could have just used StringBuilders? for those functions parameters where strings are passed out through a buffer.

05:42 Changeset [407] by lowjoel
  • branches/eraser6/Util/CryptAPI.cs
  • branches/eraser6/Util/Drive.cs
  • branches/eraser6/Util/File.cs
  • branches/eraser6/Util/KernelAPI.cs
  • branches/eraser6/Util/StreamInfo.cs

Replaced all the clumsy MarshalAs?(UnmanagedType?.LPWStr) with the DllImport? declaration: declare always the charset to be CharSet?.Unicode and the strings will be automatically marshalled as Unicode.

05:09 Changeset [406] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

Upgrade the EraseFilesystemRecords? function to support non-drive mountpoints.

04:59 Changeset [405] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

-Make the DirectExecutor? support non-drive mountpoints, ie reparse points. Incomplete though, there are a few places which will change in the next commit.
-Fixed a potentially serious bug: Users with quotas should only fill to the AvailableFreeSpace? value, not the TotalFreeSpace? value since the latter will never be reached.

04:55 Changeset [404] by lowjoel
  • branches/eraser6/Util/Drive.cs

-Always use Marshal.PtrToStringUni? since we are specifically using the Unicode functions
-Implement almost all the other members of System.IO.DriveInfo?, for drop-in replacement in Eraser
-Added the Volume.FromMountpoint? function to create a Volume object from the path to the mount point or Drive (since the constructor takes a volume ID, unlike the usual DriveInfo? function)
-Changed the Get functions to properties since we are a full class now

03:45 Changeset [403] by lowjoel
  • branches/eraser6/Util/Drive.cs

-Fixed a documentation error with a few of the Volume functions after the class restructuring.
-Tell the Marshaller to use LPWStr because we are using the Unicode functions (we explicitly state we use the <func>W functions)
-GetDriveType? can handle volume ID's, just that I didn't specify a marshalling type so it used the ANSI function when we provided a Unicode string.

03:29 Ticket #51 (Support non-drive mountpoints) created by Joel
Support non-drive mountpoints introduced with NTFS5.0 and Windows 2000. …
03:27 Changeset [402] by lowjoel
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs

Use the new Drive API to determine the available volumes for free space erasure.

03:25 Changeset [401] by lowjoel
  • branches/eraser6/Util/Drive.cs

Changed the Static drive class to work like the DriveInfo? class, only that this one works on the basis of volumes, not paths.

This implements support for non-drive mount points supported in Windows since Windows 2000.


13:52 Changeset [400] by lowjoel
  • trunk/EraserDll/Eraser.cpp

Fixed a warning: I placed the calling convention on the wrong side of the typedef.

05:18 Changeset [399] by lowjoel
  • trunk/README.txt
  • trunk/bin/Eraser.iss
  • trunk/version.h

We are now at Eraser 5.8.7-beta3. Not 5.8.8

04:58 Ticket #48 (Inaccurate determination of process elevation) closed by Joel
fixed: Okay, I think the main issue is that users think the elevated process will …
04:57 Changeset [398] by lowjoel
  • trunk/Eraser.cpp

Alert the user is the current process is running at a higher privilege level than the previous process. Should fix many elevation issues. Fixes #48

04:54 Changeset [397] by lowjoel
  • trunk/EraserDll/FreeSpace.cpp

The HasPrivileges? function has been broken up for client apps to determine if the current user is elevated (IsProcessElevated?). Also fixed a resource leak in the process.

04:53 Changeset [396] by lowjoel
  • trunk/EraserDll/EraserDllInternal.h

Don't round up files whose size are multiples of the cluster size is 0.

03:11 Ticket #34 (Erase on a write-protected floppy subfolder does nothing) closed by Joel
invalid: There's a Show Results check box at the bottom of the progress screen. If …
01:43 Changesets [393-395] by gtrant
  • trunk/EraserDll/NTFS.cpp
  • trunk/EraserDll/NTFS.h
  • trunk/EraserDll/File.cpp


14:05 Ticket #11 (Eraser 5.86 in Vista Home) closed by Joel
duplicate: I think this is a duplicate of #48. Closing this as a dup.
13:58 Ticket #5 (Scheduler wont Un - schedule) closed by Joel
worksforme: I've tried it out myself: it works. What operating system are you using? …
13:30 Ticket #42 (Right-clicking the preferences window causes program to no longer be ...) closed by Joel
fixed: Thank you for finding out an access violation waiting to happen. Fixed in …
13:30 Changeset [392] by lowjoel
  • trunk/EraserUI/stdafx.h

Fixes #42. Apparently MFC changed sizes of the structures causing problems. This stdafx is cannibalised from the EraserDll? one.

13:28 Changeset [391] by lowjoel
  • trunk/EraserUI/FlatListCtrl.cpp

Normalize line endings.

13:27 Changeset [390] by lowjoel
  • trunk/EraserDll/EraserDll.vcproj

Don't overwrite the PDB for the Eraser DLL

11:39 Ticket #43 (Installing program says that this version is a beta) closed by Joel
fixed: I've defined a release procedure that should address this problem. The …
11:33 Ticket #49 (Eraser 5 Unicode Support) closed by Joel
wontfix: Yeah, I'm aware. But it's a lot of work and this is reserved for v6, which …
11:31 Ticket #50 (Grey out Recycle Bin context menu entries when Bin is empty) closed by Joel
wontfix: Unfortunately that's not possible. The Recycle bin context menu has …
11:29 Ticket #47 (Erasing first-last 2k messes up partition table) closed by Joel
invalid: I think it is a race issue which uTorrent has with Eraser. I'm not sure …
11:22 Changeset [389] by lowjoel
  • trunk/Launcher/Launcher.cpp

Prevent the Eraser registry key from being created if we are using a standalone build.

10:41 ReleaseProcedure created by Joel
Initial commit.


11:41 Ticket #50 (Grey out Recycle Bin context menu entries when Bin is empty) created by Privateofcourse
I would like to suggest that the Eraser context menu entries on the …


05:53 Changeset [388] by lowjoel
  • branches/eraser6/Eraser/BasePanel.Designer.cs
  • branches/eraser6/Eraser/BasePanel.nl.resx
  • branches/eraser6/Eraser/BasePanel.resx

The BasePanel? should be serialisable.

02:57 Changeset [387] by lowjoel
  • trunk/EraserDll/NTFS.cpp

Warning fix.

Note: See TracTimeline for information about the timeline view.