- Added Replace-Operation + UI
- Added OperationMode to make it easier to give operations different modes
- Replaced all specific-control-event-handlers with one general PropertyChanged-event-handler for each preview and filter
- TODO: Add Remove-Operation as a subclass of Replace
- Bugfix: The Name-filter was based on Name and FullName, instead of how it is now, OldName and OldFullName. This would previously cause the filter to apply to the already previewed changes.
- You can now add, remove, modify and move operations
- FilterChangedAny was renamed to FilterChanged, the new event for the preview follows the same naming scheme with PreviewChanged
- Operations now actually verify that they're enabled (This was originally supposed to be done in the loop in Preview(), but this way seems nicer since it also removes the error label when the operation is disabled)
- The foundation has been laid to make it very easy to add more operations
- Better handles unexpected exceptions
- Expected exceptions should be OperationException
- Leaves files unchanged even if the exception occurs at *any* point of the operation
- TODO: Probably have to optimize this.
- Operations now operate on IList<T> instead of List<T> to maintain compatibility with AvaloniaList<T>
- Slightly better comments
- You can now open a directory
- The current filenames and previews are now displayed in the listboxes
- Added method pipeline for updating the lists (OpenDirectory -> Filter -> Preview)