Skip to content

v0.3.4 - The Back Pain release

Choose a tag to compare

@github-actions github-actions released this 04 Apr 12:29
· 609 commits to main since this release

Changelog

0.3.4 - 2026-04-04 - The Back Pain release

  • Highlights:
    • Ctrl+A and Ctrl+V in add-element states let you select all elements or paste clipboard content without first cancelling the add operation; an in-progress line is auto-finalized first.
    • Extra Therion run parameters can be typed directly in the Run Therion dialog (persisted as Main_TherionRunParameters) and passed via the new --therion_run_parameters CLI argument.
    • Bézier–Bézier line splitting completes full crossing-split support: all segment-pair combinations (straight–straight, Bézier–straight, Bézier–Bézier) are now handled when splitting selected lines at intersections (Ctrl+Shift+X).
  • New features:
    • Select all (Ctrl+A) and paste (Ctrl+V) now work in add-element states (add area, add line, add point): pressing Ctrl+A or clicking the new select-all FAB selects all elements and exits the add mode; pressing Ctrl+V or clicking the paste FAB pastes clipboard content. For add-line, any in-progress line is finalized first (same as pressing Enter) before the action is performed.
    • Therion run parameters: a new text field in the Run Therion dialog lets users enter extra Therion command-line options (e.g. -d for debug) that are passed to Therion on every run. The value is persisted as the Main_TherionRunParameters setting and can also be set via the --therion_run_parameters command-line argument. Closes #20.
    • Split selected lines at crossings: when two or more lines are selected, pressing Ctrl+Shift+X (or using the new state-context FAB action) splits the selected lines at detected intersection points, preserving options and generating sub-line IDs with numeric suffixes (for lines that already have IDs). Now supports all segment-pair combinations: straight–straight, Bézier–straight, and Bézier–Bézier. Bézier–Bézier intersection is found via recursive AABB subdivision (de Casteljau), and the resulting sub-curves are correctly split using the same de Casteljau algorithm. The action is fully undoable.
  • Fixed bugs:
    • Split at crossings (Bézier curves): fixed incorrect split point and control-points on final Bézier segment when the same Bézier curve is crossed by a straight line at multiple points. Root cause was twofold: (1) later crossing parameters on the same segment were applied directly to the original Bézier, but they needed reparameterization onto the remaining sub-curve after each earlier split; (2) the final sub-line was being built from the original segment in the file, not from the locally updated remainder segment after successive splits, causing it to retain the original endpoint and control-point definitions. Fixed by reparameterizing repeated crossings onto the current remainder and assembling sub-lines from the locally maintained segment list.
    • Run Therion dialog: keep status shown as 'Running' until all post-run processing completes (including appending therion.log and aggregating issues); final status (Ok, Warning, or Error) is displayed only after processing finishes. Closes #21.
    • "Rerun Therion" toolbar button now enabled after running Therion (via button or command-line --thconfig) even when Therion reports an error or is unavailable; the THconfig path is now always stored so the user can fix settings and rerun without re-picking the file.
    • MPHelpButtonWidget now uses mpLocator.appLocalizations directly instead of attempting to retrieve localizations from context, ensuring consistent localization access across the app.
  • Infrastructure maintenance:
    • Elapsed time in the Run Therion dialog now updates live every second via a Timer.periodic + ValueNotifier<Duration>, so only the elapsed time text rebuilds — not the whole dialog.
    • Added EN/PT help pages (run_therion_help) for the Run Therion dialog, and a help icon button in the dialog actions row. Updated to document the --therion_run_parameters CLI argument.
    • Updated EN/PT help pages (mapiah_home_help) to document the --therion_run_parameters command-line argument.
    • Updated EN/PT settings help pages (mp_settings_page_help) to document the Main_TherionRunParameters setting.
    • Included launch.json and pre-commit hook examples.
    • Pre-commit hook ported to work on Windows (replaced sed -i with portable mktemp/echo/cat/tail/mv equivalents).
    • Pre-commit hook now always prints "Running pre-commit hook…" so execution is easy to confirm.