Skip to content

release_2.4.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 13 Jul 05:17
· 2 commits to master since this release

What's New

Screenshot Capture (F8)

Press F8 to capture a screenshot of the application window. Screenshots are saved as PNG files in the Screenshot folder inside the application directory. This is handy for sharing your setup, reporting UI issues, or documenting settings.

Serilog Logging Infrastructure

The entire logging system has been migrated to Serilog with structured logging:

  • On-screen log viewer — Messages still appear in real time via a custom UiLogSink.
  • Rolling daily log files — All messages are written to %LocalAppData%\BatchConvertToRVZ\logs\ with 14-day retention and 10 MB size limits.
  • Automatic bug reporting — Warning and Error level events are automatically forwarded to the bug report API through a dedicated BugReportSink. No more manual ReportBugAsync calls scattered across services.

Redesigned Settings Panels

GroupBox controls have been replaced with collapsible Expander panels that are collapsed by default. This reduces visual clutter in the Convert, Verify, and Extract tabs, showing only the settings you need when you need them.

Updated Color Scheme

  • Terminal output is now white (#ffffff) instead of green — cleaner and more readable.
  • All action buttons (Start, Cancel, About, Exit) now share a unified cyan/sky-blue color palette (#00bcd4), replacing the previous multi-color scheme.

Process Error Dialog Suppression

A new ProcessHelper.SuppressErrorDialogs() method prevents Windows error dialogs (like "Ignore and continue?") from blocking batch operations when DolphinTool encounters issues. The error mode is set before spawning DolphinTool processes.

Improved Error Dialog Safety

The blocking .GetAwaiter().GetResult() call for showing MessageBox from non-UI threads has been replaced with a safer Application.Current.Dispatcher.Invoke() pattern, eliminating potential deadlocks.

Code Cleanup

  • Removed XML documentation comments from service classes.
  • Service constructors now accept ILogger directly instead of Action<string> and Func<string, Exception?, Task> delegates.
  • ConversionService, ExtractionService, and VerificationService log through Serilog with source context via .ForContext<T>().
  • Global exception handlers in App.xaml.cs log through Serilog and use a dedicated TryReportFatal method for direct bug reporting on fatal crashes.

Dependencies

  • Serilog 4.4.0
  • Serilog.Sinks.File 7.0.0
  • Microsoft.NET.Test.Sdk updated to 18.7.0

Upgrade Notes

  • No migration steps required. This release is backwards-compatible with previous version settings and workflows.
  • Log files are automatically created and managed — no user configuration needed.

Full Changelog: release_2.3.1...release_2.4.0