Skip to content

Add QR canvas captions and call-to-action frames - #301

Merged
PrzemyslawKlys merged 5 commits into
masterfrom
feature/qr-art-v2-wave3
Oct 25, 2026
Merged

PrzemyslawKlys merged 5 commits into
masterfrom
feature/qr-art-v2-wave3

Conversation

@PrzemyslawKlys

@PrzemyslawKlys PrzemyslawKlys commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

QR canvases now support captions above or below the complete quiet zone, with a portable font, regular or bold weight, colour and bounded single-line fitting. Six templates provide a scan-me pill, speech bubble, ticket stub, phone outline, card header and corner viewfinder. The existing thin frame stays visible outside the QR panel.

PhoneOutline reserves space for the notch and home indicator, plus a gap, so neither bar crosses the caption. Geometry checks cover every frame style at both caption positions, minimum and default padding, and normal and supersampled output.

The renderer reuses the managed font and outline rasterizer, preserves QR and quiet-zone pixels, and exports the same coverage in PNG and SVG. Captions smaller than eight final output pixels are rejected, including with background supersampling. Captions and frames participate in native rendered-image validation; a failed check throws.

Validation: all 81 focused caption tests pass on .NET 8, .NET 10 and .NET Framework 4.7.2. All 48 updated gallery specimens pass native validation and strict independent full-size and half-size reads. The earlier focused Linux caption and no-deadline scanner checks pass on .NET 8 and .NET 10. The rebase onto merged #300 preserves the validated source tree; current CI runs against that base.

Legacy native decoding has narrower support and cooperative scan deadlines. The geometry/export contract checks that accepted PNGs preserve the expected pixels and rejected appearances throw the native-validation error. Guardrails stay enabled. Timed caption checks use the existing nonparallel collection.

Builds on merged #299 and #300.

@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 7 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 0af77a48-b586-4be3-bb77-e571fc58b8fa
Commits

Reviewing files that changed from the base of the PR and between 4ec5de2 and 51b415a.

Files selected for processing: 11
  • CodeGlyphX.Tests/CodeGlyphX.Tests.csproj
  • CodeGlyphX.Tests/QrCanvasCaptionTests.cs
  • CodeGlyphX/Printing/PrintLayoutBuilder.cs
  • CodeGlyphX/QrRenderer.Cloning.cs
  • CodeGlyphX/QrRenderer.Helpers.cs
  • CodeGlyphX/Rendering/Png/QrPngRenderer.CanvasCaptions.cs
  • CodeGlyphX/Rendering/Png/QrPngRenderer.Internal.Eyes.cs
  • CodeGlyphX/Rendering/Png/QrPngRenderer.Internal.Render.cs
  • CodeGlyphX/Rendering/QrStyles/QrCanvasCaptionOptions.cs
  • CodeGlyphX/Rendering/QrStyles/QrCanvasOptions.cs
  • README.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.15625% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.75%. Comparing base (4ec5de2) to head (51b415a).

Files with missing lines Patch % Lines
...phX/Rendering/Png/QrPngRenderer.Internal.Render.cs 76.00% 2 Missing and 4 partials ⚠️
...lyphX/Rendering/QrStyles/QrCanvasCaptionOptions.cs 50.00% 0 Missing and 6 partials ⚠️
...yphX/Rendering/Png/QrPngRenderer.CanvasCaptions.cs 93.82% 0 Missing and 5 partials ⚠️
CodeGlyphX/QrRenderer.Helpers.cs 66.66% 0 Missing and 1 partial ⚠️
CodeGlyphX/Rendering/QrStyles/QrCanvasOptions.cs 50.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #301      +/-   ##
==========================================
+ Coverage   72.68%   72.75%   +0.07%     
==========================================
  Files         899      901       +2     
  Lines       82441    82548     +107     
  Branches    24005    24052      +47     
==========================================
+ Hits        59925    60061     +136     
+ Misses      13592    13541      -51     
- Partials     8924     8946      +22     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave2 branch from cb5e0d5 to 24ea8d7 Compare October 24, 2026 23:59
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave3 branch from b229d87 to 7f674e3 Compare October 24, 2026 23:59
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave2 branch from 24ea8d7 to c8fbbb5 Compare October 25, 2026 00:12
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave3 branch from 7f674e3 to 45f07cc Compare October 25, 2026 00:12
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave2 branch from c8fbbb5 to f99dc95 Compare October 25, 2026 01:06
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave3 branch from 45f07cc to 60fa3e0 Compare October 25, 2026 01:06
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave2 branch from f99dc95 to 0e43fd0 Compare October 25, 2026 02:30
Base automatically changed from feature/qr-art-v2-wave2 to master October 25, 2026 03:32
@PrzemyslawKlys
PrzemyslawKlys force-pushed the feature/qr-art-v2-wave3 branch from 60fa3e0 to 51b415a Compare October 25, 2026 03:32
@sonarqubecloud

Copy link
Copy Markdown

@PrzemyslawKlys
PrzemyslawKlys merged commit 6c909ac into master Oct 25, 2026
14 checks passed
@PrzemyslawKlys
PrzemyslawKlys deleted the feature/qr-art-v2-wave3 branch October 25, 2026 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant