Commit graph

112 commits

Author SHA1 Message Date
63751af18d Add selectable image library option and refactor processing
Introduce UI option to choose between System.Graphics and ImageSharp for image processing. Update DataModel and MainForm for robust binding and synchronization. Rewrite ImageCreatorAlternate to use ImageSharp for core operations and GDI+ for overlays. Remove test buttons, add radio group for library selection. Update project dependencies to support new features and modernize image handling.
2026-02-15 01:03:26 +01:00
e48c0d266b Add IImageCreator abstraction and runtime provider selection
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.
2026-02-15 00:14:04 +01:00
a00ab074c4 Prefer GitVersion values for assembly and publish versioning
Enhance versioning by prioritizing GitVersion output for assembly, file, and informational versions. Add fallback MSBuild target to run GitVersion CLI in Visual Studio builds. Update publish rename logic to use FullSemVer and improve version normalization for artifact naming.
2026-02-15 00:03:16 +01:00
69fdf01de3 Modernize versioning and display in app and build output
- 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
2026-02-14 22:18:56 +01:00
509d5357a8 Integrate GitVersion and add version provider abstraction
- 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
2026-02-14 21:14:06 +01:00
5cb491f1b5 Persist last-used dialog folders in user preferences
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.
2026-02-14 20:38:51 +01:00
6ccbec890a Improve speed stats, UI usability, and settings persistence
Enhanced speed counter with smoothing and elapsed time display.
Added folder open buttons to UI and repositioned speed label.
Added UpdateSubdirectories to settings for persistence.
2026-02-14 19:36:58 +01:00
c2fd4bf780 Add image processing benchmarks and UI folder open buttons
- Added MaddoShared.Benchmarks project with BenchmarkDotNet for comprehensive image processing performance tests (parallel, chunk, size, stress).
- Included helper for generating test images and custom configs to ensure InProcess toolchain for .NET Windows compatibility.
- Added cross-platform scripts to run benchmarks easily.
- Updated .gitignore for benchmark artifacts and temp files.
- Exposed GetFilesToProcessPublic in ImageCreationStuff for testability.
- Added file name sanitization in ImageCreatorSharp to prevent IO errors.
- Enhanced WinForms UI: added "Open" buttons for source/destination folders, handled folder opening in Explorer, and improved user messaging and layout.
- Updated solution file to include new benchmark project.
2026-02-14 19:20:25 +01:00
39b0904a72 Update test project SDK, add assessment, bump submodule
- Switched MaddoShared.Tests.csproj to Microsoft.NET.Sdk, added explicit MSTest and test SDK package references, and upgraded Microsoft.Extensions.Logging.Abstractions to 10.0.2.
- Added assessment.csv, assessment.json, and assessment.md with detailed .NET 10.0 compatibility analysis.
- Updated MaddoLibrary submodule reference (now marked as dirty).
2026-02-10 21:30:56 +01:00
68c1106f65 Enhance image processing performance and flexibility by introducing atomic counters, improving file pattern matching, and refining logo positioning logic. 2026-02-10 21:18:46 +01:00
ba965e8266 Fixes and mapping 2026-02-04 23:16:06 +01:00
fc7175c2f7 Fixes to settings 2026-02-04 22:10:16 +01:00
d73389d791 Update library and fixes 2026-02-04 21:12:27 +01:00
1db874ce77 Migration to MVVM 2026-02-04 19:48:03 +01:00
0c1bb50dce Added unit tests 2026-02-04 19:01:00 +01:00
cfbc6334b6 Refactoring, upgrades and improvements to memory usage 2026-02-04 18:38:44 +01:00
a076f6b8fb Removed comment 2026-02-04 17:53:01 +01:00
Marco
c722d39eb1 Modernized xml reading and saving 2025-09-19 10:56:39 +02:00
Marco
2b195946e3 Fixed threads and chunk loading error 2025-09-19 10:01:24 +02:00
Marco
764a439645 Chunks and threads in model 2025-09-19 09:53:31 +02:00
Marco
a466efbb27 Formatting 2025-07-29 11:10:54 +02:00
Marco
80fcaa6fd0 Async stop 2025-07-29 11:07:49 +02:00
Marco
1cd71c54fc Clean up 2025-07-29 10:34:23 +02:00
Marco
5d21d3f8ef Version Bump 2025-07-28 14:46:45 +02:00
Marco
12d1bd57dc Override mode fix 2025-07-28 14:45:03 +02:00
Marco
abdd2a313a Race time fix 2025-07-28 12:26:23 +02:00
Marco
fa889a5cd3 Refactored image creator code 2025-07-28 11:25:46 +02:00
Marco
2fde30572b Removed outdated module 2025-07-28 10:35:51 +02:00
Marco
1b1ca37310 Deleted projects 2025-07-28 10:34:43 +02:00
Marco
a21522a916 Cleaned up old code 2025-07-28 10:34:03 +02:00
Marco
63aac7f911 modernized picsettings 2025-07-28 10:22:08 +02:00
Marco
4ceb46d65c Removed visual basic lib from project 2025-07-28 10:01:27 +02:00
Marco
ab33d4558f Removed visual basic lib dependency 2025-07-28 09:59:58 +02:00
Marco
65aeabdfee Updated libraries and made horizontal text property 2025-07-28 09:49:55 +02:00
Marco
af987f840d Removed old code 2025-07-28 09:15:45 +02:00
Marco
33d397d67a Removed visual basic from main form 2025-07-28 09:00:07 +02:00
Marco
ce347a7095 Preload logo 2025-07-25 10:34:54 +02:00
Marco
22cf884d4d Version number 2025-07-24 16:31:39 +02:00
Marco
55713c340b Dispose images 2025-07-24 14:33:48 +02:00
Marco
b98623f092 optimizations 2025-07-23 17:16:06 +02:00
Marco
1b78b245d1 Added configuration file 2025-07-23 15:24:36 +02:00
Marco
d8d8b152bd Errors fix, removed old library, Added logging 2025-07-23 15:08:25 +02:00
Marco
8048c41cd0 Upgraded to .NET 9 2025-07-08 14:35:27 +02:00
4e4a59b0b2 Bound UI Enabled 2024-10-14 23:48:21 +02:00
22f7143d6e Binding Commands 2024-10-14 23:25:35 +02:00
d3327089ff Initialized ViewModel 2024-10-14 23:05:18 +02:00
efbc9f91db Added viewmodel 2024-10-14 22:55:52 +02:00
a1c950734a Updated version 2024-10-14 22:18:26 +02:00
39a9baf5c6 Added dependency injection 2024-10-14 22:18:03 +02:00
2293c4f9e1 Updated project versions 2024-10-14 21:56:40 +02:00