Introduce Avalonia as a new cross-platform UI option, including new XAML and code-behind files for the application and main window. Update Program.cs to support a --avalonia launch argument and add corresponding launch profile. Integrate Avalonia NuGet packages and ensure DataModel supports UI-thread invocation for all frontends. All business logic and state are shared via DI, enabling consistent behavior across WinForms, WPF, and Avalonia.
Refactored Program.cs to accept command-line arguments and select between WinForms (default) and WPF UI based on the presence of --wpf. Removed old commented-out UI selection code. Updated launchSettings.json to provide separate profiles for WinForms and WPF launches. If WPF is requested but unavailable, the app falls back to WinForms.
- Add .gitlab-ci.yml for Windows CI/CD: build, publish, and GitLab Release with artifact upload
- Replace GitVersion.MsBuild with MinVer for versioning; update all versioning logic in .csproj
- Remove GitVersion CLI fallback for Visual Studio builds
- Update post-publish renaming to use MinVer's Version property
- Replace multiple thumbnail text checkboxes with a single ComboBox selector in MainWindow.xaml
- Change default UI startup: prefer WPF MainWindow, fallback to WinForms MainForm
Implement mutually exclusive logic for thumbnail display modes in DataModel and MainForm. Add ThumbnailMode property for authoritative state. Replace radio button bindings with event handlers. Synchronize UI with model changes. Explicitly map thumbnail flags to PicSettings. Force WinForms startup, disabling WPF branch.
Introduced MainWindow.xaml and code-behind for a modern WPF interface with tabbed settings. Enabled WPF in project file. Refactored startup to launch WPF or WinForms UI based on availability. Registered WPF MainWindow in DI. Improved DataModel cancellation to be synchronous and log exceptions. Minor logging and comment updates. App now supports both WPF and WinForms frontends.
Introduce IImageCreator interface for image creation, and update ImageCreatorSharp to implement it. Add ImageCreatorAlternate (adapter) and ImageCreatorMapper (runtime selector) classes. Extend PicSettings with ImageCreatorProvider to control backend selection. Update DI registrations and refactor ImageCreationStuff to depend on IImageCreator, enabling backend switching via configuration.
- Switch to explicit "3.2.0" next-version in GitVersion.yml
- Update NuGet packages and set assembly name to "ImageCatalog"
- Add MSBuild target to rename published exe with year and version
- Add AppVersion property to DataModel, set via IVersionProvider
- Replace static version label with data-bound versionLabel in UI
- Remove manual version label logic from MainForm
- Update DI to inject IVersionProvider into DataModel
- Ensures UI always shows correct version and builds are versioned
- Added GitVersion for semantic versioning and build metadata
- Introduced IVersionProvider and VersionProvider for UI-friendly version display
- MainForm now uses IVersionProvider for version label
- Registered VersionProvider in DI container
- Improved logging: filtered out AutoMapper license logs
- General code cleanup in Program.cs
Dialogs now remember last-used folders for source, destination, logo, and settings files by storing these paths in a user preferences file under LocalApplicationData. Preferences are saved on form close, reducing unnecessary writes. SettingsService now uses a temporary ParametriSetup for settings files to avoid polluting user preferences. Error handling ensures preference save failures do not disrupt the user. This separation improves user experience and keeps user preferences distinct from project settings.