Commit Graph
418 Commits
Author SHA1 Message Date
Hakan Seven a27545c379 fix: resolve review regressions and align dependencies 2026-09-17 07:47:15 +03:00
Hakan Seven 03f4e7cb86 Merge pull request #1309 from ghost/embed-print-fonts 2026-09-17 06:57:42 +03:00
PanosandClaude Opus 5 737666b894 feat(plot): printer driver properties and a roomier plot dialog
Properties… next to the printer used to open the CUPS web interface in a
browser. It now edits the driver options of the *selected* printer the
way LibreOffice's Properties… does, without leaving the plot dialog:

- CUPS platforms (Linux, any desktop; macOS): an in-line editor lists the
  printer's PPD options as `lpoptions -l` reports them — media type,
  colour mode, quality, duplex, trays, scaling — with readable choice
  labels, Reset / Cancel / Apply. Apply keeps only the choices that differ
  from the driver defaults, per printer, in the plot config, and every job
  for that printer passes them as `lp -o key=value`. Where CUPS cannot
  answer, the desktop's printer settings panel opens instead of a browser.
- Windows: the driver's document-properties sheet (`DocumentPropertiesW`
  with prompt, owned by the main window) and, on OK, the result stored as
  the user's printing preferences for that printer (`SetPrinter` level 9),
  which the job honours. `printui /e` (printing preferences) replaces the
  device-properties sheet as the fallback.

The desktop print portal was tried first and dropped: GTK 4's print
dialog loses the preselected printer when the default queue is listed
before it, so the dialog always opened on the wrong printer.

Dialog layout: the modal grows to 940×620; Printer / plotter and Paper
size share a line with their pickers (long queue and media names now fit);
Copies + Properties… and Custom… sit beneath; the custom-sheet editor
labels each margin (Left / Right, Top / Bottom) and shows the unit.

Also recognises `none_device`, AutoCAD's stored spelling for "no plotter",
and writes it back unchanged.

Tests: `lpoptions` parsing and keyword humanising, the editor flow (load,
stale answer ignored, set, apply, remember, reset, error, cancel), device
name round-trips including `none_device`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 16:05:47 +03:00
huanld 28efbffd57 feat: embed images (OLE2FRAME), print pipeline fixes, plot prefs, community fonts
- IMAGEEMBED: pack raster images into OLE2FRAME entities so a .dwg is
  self-contained; 'Embed Image' entry in the XREF attach menu; control/MCP
  op embed_image for external tools; dxf_name for OLE2FRAME queries.
- Scene: populate_images_from_document now rebuilds OLE2FRAME and PDF
  underlay models too (they used to vanish after any XREF op).
- Printing: add PRINTER_ENUM_NETWORK pass when listing printers; GDI
  spooler fallback (hayro raster at 300 DPI + StretchDIBits) for hosts
  whose PDF handler registers no print verb; DEVMODE orientation with a
  90-degree raster rotation fallback for v4 drivers; fix the fit-scale
  precedence bug that printed blank pages.
- PDF export dialogs on Windows use the async file dialog so the native
  overwrite confirmation no longer deadlocks the UI thread.
- Plot dialog: persist the chosen printer (saved on selection) and the
  picked plot window across sessions; page setups with no device no
  longer reset the output device.
- Community fonts: detect unresolvable .shx references on open and offer
  a download from the repository's fonts/ folder (contribution guide in
  fonts/README.md); custom font source URL setting for intranet font
  servers; downloaded fonts resolve from the per-user fonts directory.
2026-09-16 16:42:21 +07:00
Hakan Seven d10a0cf798 Merge pull request #1301: Add associative viewport dimensions
Refresh associations after complete SpaceMouse camera updates and recognize imported paper-space owners without Layout objects. Use kernel containment, intersection, perpendicular and spline tangent solving; pin cadkernel 7ce27f2 and add regressions.
2026-09-16 09:56:33 +03:00
Hakan Seven af847ad92e Merge pull request #1299: Add Windows SpaceMouse navigation 2026-09-16 09:41:25 +03:00
Karim Jerbi 4b351911bf fix(xref): deliver row-menu clicks via press-publishing rows
Each menu row is now a single mouse_area that publishes on PRESS instead of a button nested in a mouse_area. iced_aw ContextMenu keeps its overlay element in the widget struct, so every view rebuild wipes the overlay subtree state - including a button's is_pressed between press and release - and release-time clicks published nothing. Headless simulator tests through the real overlay guard row clicks, flyout clicks, the Change Path Type hover trigger, and pin the subtree-reset mechanism. Requires iced_test as a dev-dependency; the Cargo.lock gpu-allocator/windows edge is pinned back to 0.62.2 (see docs/review-context-menu-click-delivery.md).
2026-09-15 23:56:32 +01:00
Christopher Overbeck 6a63726eff Add Windows SpaceMouse navigation through 3DxWare 2026-09-15 13:20:19 -05:00
Hakan Seven b12314c3ed Merge pull request #1289 from ramox81/fix/coincident-standard-command 2026-09-15 15:43:13 +03:00
ramox81 34b7d9481b Keep point-on-arc constraints within their sweep 2026-09-15 15:04:14 +03:00
Hakan Seven 487b635073 Merge pull request #1275 from CiberNin/fix/plot-bitmaps
# Conflicts:
#	src/app/update/file.rs
#	src/scene/mod.rs
2026-09-15 12:34:01 +03:00
Hakan Seven 03c70c5417 Merge pull request #1273 from CiberNin/fix/spline-fill-clearance
# Conflicts:
#	src/scene/entity.rs
2026-09-15 12:31:00 +03:00
Hakan Seven 279288ab71 Merge pull request #1276 from CiberNin/fix/windows-printers 2026-09-15 12:29:27 +03:00
Hakan Seven adc8555394 Merge PR #1279 and complete parametric UI actions 2026-09-15 11:48:35 +03:00
Hakan Seven d738ebfcc6 Standardize parametric constraints and interoperability 2026-09-15 03:19:52 +03:00
Christopher Overbeck c93cc17592 Include bitmap images in PDF plots, preview, and printing
Include decoded IMAGE/OLE content in the shared PDF plotting path,
with clipping, transforms, transparency, draw order, and resource reuse.
Use named page content for export and printing.

Fixes #1266
2026-09-14 17:07:57 -05:00
Christopher Overbeck f85b23bf74 Enumerate installed Windows printers in the plot dialog
Populate the plot-dialog printer list from the Windows spooler cache.
Validate record counts and UTF-16 name bounds before reading the buffer.

Refs #1261
2026-09-14 17:07:56 -05:00
Hakan Seven 753df67ee4 Complete parametric drawing interoperability 2026-09-14 23:51:37 +03:00
Hakan Seven 6c0badbdc8 fix: resolve annotation pull request findings 2026-09-14 20:16:46 +03:00
Hakan Seven 293d0796fb Merge pull request #1246 2026-09-14 19:58:35 +03:00
Hakan Seven f2fd2ae5ad fix: address open pull request review findings 2026-09-14 19:58:35 +03:00
ramox81 a35c996f9f fix(annotate): complete table and data workflows 2026-09-14 14:54:55 +03:00
Hakan Seven 912b217d26 fix: delegate dimension transforms to cadcodec 2026-09-14 14:22:10 +03:00
Hakan Seven cba64631b8 fix: render PDF attachments on every platform
Fixes #1243
2026-09-14 12:53:06 +03:00
Hakan Seven 010d23fa95 chore: sync reviewed dependency mains 2026-09-14 10:02:49 +03:00
Hakan Seven 2f741d689f fix: address open PR review findings 2026-09-14 09:45:37 +03:00
Hakan Seven fc1788df65 fix: export interoperable DWG constraint graphs 2026-09-14 02:57:33 +03:00
Hakan Seven 7b4cef41f7 Complete parametric ribbon and constraint tools 2026-09-14 01:05:39 +03:00
Hakan Seven 78ab1c8013 Keep grip edits on the drawing plane and preserve constraint undo 2026-09-13 22:33:17 +03:00
Hakan Seven 64e64c80a1 Merge pull request #1235 with kernel-based dimension leaders 2026-09-13 21:14:47 +03:00
Hakan Seven 84836b0f0c Merge pull request #1234 with safe hyperlink routing 2026-09-13 21:03:30 +03:00
github-actions[bot] a43fb253f6 Release v2026.37 2026-09-13 15:55:00 +00:00
Hakan Seven 07acd1284c Render procedural checker materials correctly 2026-09-13 01:50:42 +03:00
Karim Jerbi 58c9fcb748 perf(bench): introduce standardized 25-metric CAD and UI benchmark suite
- Add comprehensive performance benchmark harness in benches/performance_benchmarks.rs
  configured with harness = false in Cargo.toml (runs via cargo bench in --release,
  isolated from cargo test).
- Benchmark coverage across 25 distinct CAD & UI operations:
  * Entity Ingestion, GPU Wire Partitioning, Analytical & Wide/Tapered Arc Tessellation
  * 100x Zoom Navigation, Spatial InteractionIndex, Multi-mode Hit-Testing, OSnap Tracking
  * 2D Parametric Dogleg Constraint Solving, DXF Import/Export Throughput
  * UI Ribbon View Construction, Viewport Grid Projection, Grid Cache Evaluation
  * Themed SVG Icon Lookup Caching, Cold Extents AABB Calculation
  * Batch Entity Transformation, Draworder Depth Map Full/Patch, Delta-Undo Recording
- Expose internal calculation hooks with #[doc(hidden)] pub to prevent API leakage.
- Remove 644 lines of legacy, scattered ad-hoc #[test] #[ignore] benchmarks across src/.
- Add developer and regression documentation in benches/README.md.
2026-09-12 13:46:01 +01:00
Hakan Seven 7c5a388f19 Merge PR #1215: add rectangle grip dimensions 2026-09-12 14:53:37 +03:00
Hakan Seven 932bf970c6 Update CAD dependencies 2026-09-12 14:13:49 +03:00
Karim Jerbi f1d5284fb9 fix(mtext): support arabic cursive shaping and bidirectional rtl text layout
- Enable fallback font metrics for HarfBuzz shaping in TTF glyph resolver

- Implement Unicode Bidirectional Algorithm (UBA) paragraph base direction detection

- Anchor right-to-left paragraphs to right container boundaries by default

- Reorder line atoms with base direction level to preserve neutral punctuation attachment

- Right-align RTL single-line TEXT and handle editor caret placement on RTL glyphs
2026-09-12 11:06:11 +01:00
Hakan Seven ef189d7781 Update CAD dependencies for DWG template fix 2026-09-11 21:42:29 +03:00
Hakan Seven 798379fbe0 Update dependencies after cadcodec PR 44 2026-09-11 19:13:22 +03:00
Hakan Seven 5e91e23752 Update codec and kernel dependencies 2026-09-11 18:52:31 +03:00
Hakan Seven e86c045988 Update codec for DXF ATTRIB angle units 2026-09-11 16:42:57 +03:00
Hakan Seven ba77ee0ea8 Merge pull request #1211 from Ramox81/codex/align-dependent-revisions-20260911 2026-09-11 15:54:07 +03:00
ramox81 d6ca05985c Merge current main while retaining aligned dependency revisions 2026-09-11 15:15:43 +03:00
ramox81 096077af5b Use selected-coordinate polyline connector joins 2026-09-11 15:09:22 +03:00
Hakan Seven 7edf0de603 Merge updated pull request #1188 from Ramox81/pedit-enhancements 2026-09-11 14:55:26 +03:00
ramox81 724956ce72 Use bounded curve breaks and endpoint extension kernels 2026-09-11 14:17:11 +03:00
ramox81 59fddf119d Update hatch origin and oriented region dependencies 2026-09-11 13:49:37 +03:00
Hakan Seven 462024ae6f Update cadkernel for spatial angle bisectors 2026-09-11 13:49:13 +03:00
Hakan Seven 30b6441ef9 Complete bounded spline polyline conversion 2026-09-11 13:33:17 +03:00
ramox81 e292e295f5 Use oriented spatial angle bisector revision 2026-09-11 13:26:36 +03:00