V1.2: AutoSort and Other Big Changes, Additions, and Improvements
New Features
- Added AutoSort, which can chew through a folder and quickly sort it for you, instead of having to do it manually by hand.
- Implemented a Dictionary that stores the filenames and short paths of items in the destination folder, used to warn user of potential duplicate files by checking if there is a file with the same name already in there. Will be most useful for files that have timestamps in them like 'IMG_20220324_141358.jpg'.
- Warnings are no longer given via MessageBoxes. Instead, a Label has been added in the main GUI to give warnings such as potential duplicate file, etc.
- GPO.xaml.cs has been massively cleaned up and de-spaghettied 🍝.
- GPO now supports files with extensions that aren't lowercase like MOV, JPEG, PnG, etc.
- Change GUI controls for original and destination file paths from Labels to TextBlocks. This is because in Labels, any '_' characters are used for Alt acceleration, while TextBlocks don't allow this. This makes the GUI look that much better.
- Replace old Metadata.cs class with my new DateTakenExtractor NuGet package. This new package also supports null Date Taken, which GPO now uses for when a file has no DT metadata anywhere. Historically, DateTime.Now was the default value for when this happened. I think null will make a lot more sense and be simpler and more clear to the user. Also, when an item's DT is null, the Next button is grayed out, since that wouldn't make sense. If the user assigns a Date and Time to the current item, it is re-enabled.
- GPO now does a bit more cleanup when it finishes a sorting session.
- Added a TimePicker control. This is used for the 2 settings that allow you to modify the item's internal DT metadata when sorted.
- The stat for how many are left to sort should actually work good now.
- itemPreview's Visibility is no longer changed. Instead, its source is set to null when nothing to display.
- Add some more spacing between each stat and added the 'total' statistic.
- When an item is moved, its internal Date Taken metadata can now be updated. If you give it a new DT (or give it a DT in the first place), that will be written to the file if enabled in Settings. Also, if it has a filename DT but NOT metadata DT, the metadata can be automatically created/updated with the filename DT.
- Added a Progressbar.
- When you enter a new filename, it checks to see if there is already a file with that same exact name in the sorted folder and thus shows a warning.
Fixes and Improvements
- Remove a few useless lines and code and address a few warnings.
- Mute button now is only enabled when sorting is taking place.
- Fix some file in use errors, mostly caused by chonky videos.
- Fix issue where today's date is shown in the "New: " thing on GUI load.
- Fix an issue where srcDirLabel and destDirLabel Content could be set to null and thus make UI look weird.