- Drag+Drop now shows a black line where the item is going to be dropped as an additional visual cue to make it more intuitive
- Avalonia's dark default style is lacking two things:
-- Highlights on ListBoxItem are too bright (easy fix)
-- The window decoration remains white (could be disabled and replaced with custom title bar)
- You can now Drag-Drop re-order operations
- The delete buttons are now on the operations themselves
- These two together mean that you now dont have to (and cant) select operations anymore
- Added ability to view the path on a filename in the before- and after-lists
- Also updated Avalonia to preview8
- Removed redundant calls by disabling event handling when an operation is created or moved, as well as before the end of construction
- Also removed unused and ordered namespaces
- OperationMode now designed and implemented in a way that allows serialization
- Modes are now defined using an enumeration with with attributes decorated values
- MainWindow.xaml.cs's event handlers now only listen for changes to certain properties
- Property naming conventions fixed
- AvaloniaProperties are now public + static + readonly
- 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
- Overwrite might be a bad example, because it has no fail conditions. The intended behaviour for those is to throw an exception for invalid parameters, with an error text describing to the user what went wrong.
- Fail condition check may be moved to a seperate abstract method, forcing implementers to at least give fail conditions a thought.
- Minor refactor
- TODO: Better folder structure to group operations (Looking for suggestions)
- 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)
- Filter options only visible when expanded
- Expander seperate from the filter options grid to keep the directory controls in place
- Added and fixed some styling
- Stores the components of a full file path
- Larger components (FullName, Path) can both be retrieved and set
- Stores all of the initial values for comparison, displaying before and after using a single list property, and reverting changes