Commit Graph
2557 Commits
Author SHA1 Message Date
Hakan Seven 3a5591e036 Fix JSON syntax in registry.json 2026-08-31 00:01:42 +03:00
Hakan Seven bc75b7d543 Merge pull request #942 from schoeller/patch-1
Update registry.json
2026-08-30 23:55:52 +03:00
Sebastian 26f00019d2 Update registry.json
Adding Python REPL Plugin
2026-08-30 22:36:51 +02:00
Hakan Seven abb4f4bf56 fix(blocks): unify nested object transforms
Route block-backed entities through one local geometry and accumulated transform path.

Refs #864
2026-08-30 23:30:14 +03:00
Hakan Seven 853e830126 fix(grips): prevent phantom snapping
Keep hidden pre-drag geometry out of snap candidates and avoid empty
scene invalidations. Require stable OTRACK dwell observations and cache
planar-solid visibility during live previews.

Refs #930
2026-08-30 22:26:47 +03:00
Hakan Seven 2a482089b8 test: fix regression assertions
Refs #941
2026-08-30 21:18:10 +03:00
Hakan Seven e136741b0f fix(automation): stabilize regression coverage
Use locale-independent assertions, kernel coordinate conversion, and safe temporary drawing cleanup.\n\nRefs #941
2026-08-30 21:04:12 +03:00
Hakan Seven 814079278c Merge pull request #936 from schoeller/Expose-XDataValue
Expose XDataValue re-export from acadrust xdata module
2026-08-30 20:53:56 +03:00
Hakan Seven 9f3a9d0ecd fix(plugin): sync lockfile version 2026-08-30 20:53:11 +03:00
Sebastian c60326ad4a Expose XRecord types and bump ocs_plugin_api to 0.2.1 2026-08-30 02:16:49 +02:00
Karim Jerbi 166d758820 fix(ui): stabilize themed cache keys with static byte slices and harden tests
The themed handle cache (introduced in cc430cdb) keys entries by (address, length) of &'static [u8] art. However, the art was declared as const; Rust may inline distinct copies of a const at each use site, giving the same logical icon different addresses. This broke cache lookups for wrapper functions (e.g., themed_arrow_down) that refer to the same icon from a different module than the cache test. Convert the ~30 themed-relevant byte slices (TRI_*, HOME, UNDO, REDO, CHECK, etc.) to static so each artwork has one stable address process-wide.

Also refactor themed_handle to drop the immutable borrow before building a miss handle, preventing a reentrant call from panicking on a second borrow_mut.

Adjust themed_cache_tests to use delta assertions and per-test cache removal for isolation, and add coverage for second-call cache hits, wrapper delegation, and the length component of the key.

Test: ui::icons::themed_cache_tests::themed_cache_returns_same_handle_for_same_bytes
Test: ui::icons::themed_cache_tests::themed_cache_caches_distinct_bytes_separately
Test: ui::icons::themed_cache_tests::themed_cache_second_call_is_a_cache_hit
Test: ui::icons::themed_cache_tests::themed_wrapper_populates_cache_for_underlying_bytes
Test: ui::icons::themed_cache_tests::themed_cache_key_includes_length
Test: ui::icons::themed_cache_tests::themed_cache_speedup_over_uncached_handle_creation
2026-08-30 00:36:04 +01:00
Sebastian 8825ce5274 Expose XDataValue re-export from acadrust xdata module 2026-08-29 22:18:39 +02:00
Hakan Seven 7a523a0f44 fix(clipboard): share COPY across drawings 2026-08-29 23:12:26 +03:00
Hakan Seven 217f20d8bc fix(clipboard): preserve pasted content
Reset cross-document ownership, include non-wire and locked objects, and rebuild image caches for embedded OLE content.

Refs #934
2026-08-29 22:40:59 +03:00
Hakan Seven 4fc8446df7 feat(qselect): remember last settings
Refs #892
2026-08-29 21:18:22 +03:00
Hakan Seven 204c427d57 Merge pull request #933 from schoeller/plugin_document_path
feat(plugins): expose document path to plugins via HostApi
2026-08-29 16:00:42 +03:00
Hakan Seven 0d766be3df fix(plugins): preserve document path encoding
Keep OS-native path data intact across IPC instead of replacing non-UTF-8 bytes.

Refs #901
2026-08-29 16:00:18 +03:00
Hakan Seven 1c52a2afcf Merge remote-tracking branch 'origin/main' into HEAD 2026-08-29 15:58:18 +03:00
Hakan Seven 0431d98531 Merge pull request #932 from schoeller/plugin_on_load
feat(plugins): add BuiltinPlugin::on_load lifecycle callback
2026-08-29 15:58:00 +03:00
Hakan Seven 2842f6dc58 fix(plugins): gate on_load behind API v5
BREAKING CHANGE: plugins using on_load must target API v5 and declare api_version = 5.

Refs #901
2026-08-29 15:57:26 +03:00
Hakan Seven c527466791 Merge remote-tracking branch 'origin/main' into HEAD 2026-08-29 15:55:50 +03:00
Hakan Seven 5062c26c88 Merge pull request #931 from schoeller/rustc_plugin_gate
feat(plugins): include rustc version in plugin compatibility gate
2026-08-29 15:55:04 +03:00
Hakan Seven 466ab99c63 fix(plugins): enforce rustc compatibility
BREAKING CHANGE: API v4+ plugin packages must declare the exact rustc version used to build the binary.

Refs #901
2026-08-29 15:54:41 +03:00
Karim Jerbi 6bf84d8f5e feat(ui): show color swatch and layer in selection cycling popup
Improve the selection-cycling list box so overlapping objects can be
identified at a glance:

- Add a color swatch per row showing the object's effective drawn color
- Show the layer name right-aligned next to the element type
- Size the popup to fit its content with consistent padding

Widen render_style_for_viewport visibility from scene-internal to
crate-wide so the view layer resolves the same color the renderer uses.
2026-08-29 12:31:03 +01:00
Karim Jerbi 452749f58c fix(ribbon): align combo panel dropdowns to a shared baseline
Style selectors (Standard, layer, Color/Linetype/Lineweight) sat at
different heights across ribbon panels because each combo panel
vertically centered its content: panels with fewer icon rows
(Multiline Text, Table) centered their dropdown differently than
panels with two rows (Dimensions, Multileader).

- Pin all combo panels (Layers, Properties, style combos) to the top
  of the fixed 3-row panel with a shared COMBO_PANEL_PAD, so every
  primary dropdown shares one baseline regardless of icon-row count
- Extract the duplicated tool-row and panel-container code into
  tool_row() / combo_panel_col() helpers + named spacing constants
- Bundle the per-view render state into RenderCtx, shrinking
  render_large/render_large_dropdown from 12-14 positional args to
  (item, &ctx)
- print_to_printer: silence the Windows-only dead-code warning on
  PrintOptions::quality with the platform split documented (the field
  is read by the CUPS `lp -o print-quality` path)
2026-08-29 11:35:06 +01:00
Sebastian 4668042df5 fix(plugins): compare rustc version tokens instead of concatenating
Tightens the rustc compatibility gate so that whitespace-normalised

version strings are compared token-by-token. This prevents a corner case

where 'rustc 1.98.0' and 'rustc1.98.0' would be considered equal.
2026-08-29 11:29:41 +02:00
Hakan Seven 0237652963 style(icons): unify theme-aware palette 2026-08-29 12:20:24 +03:00
Sebastian 996f6f7299 feat(plugins): add BuiltinPlugin::on_load lifecycle callback
OpenCADStudio/plugins#901 (comment)

- Add BuiltinPlugin::on_load(&mut self, host: &mut dyn HostApi) with a default
  no-op implementation so existing plugins remain source-compatible.
- Invoke on_load once for V4 plugins immediately after the runner connects
  and before entering the request loop, giving plugins a HostApi surface to
  cache plugin_request_sender() or set up worker threads before any dispatch.
- V2/V3 plugins are unchanged: HostApi is only available during dispatch.
2026-08-29 11:12:33 +02:00
Sebastian 09ba67bfd1 feat(plugins): expose document path to plugins via HostApi
OpenCADStudio/plugins#901 (comment)

- Add HostApi::document_path(tab_id) returning Option<PathBuf>.
- Add PluginRequest::DocumentPath and PluginResponse::DocumentPath for
  out-of-process plugins.
- Implement the request in the IPC server and in both V3/V4 plugin-side
  HostApi proxies.
- Implement HostSession::document_path by looking up the tab by id and
  returning its current_path.
2026-08-29 11:09:31 +02:00
Sebastian ed3e064a47 feat(plugins): include rustc version in plugin compatibility gate
OpenCADStudio/plugins#901

- Record the host's rustc --version output in the embedded version_info.json.
- Add rustc_version/rustc_declared/rustc_compatible to plugin manifests and
  release metadata, mirroring the existing acadrust gate.
- Reject API v4+ plugins whose declared rustc differs from the host, with a
  clear one-line error message.
- Propagate the rustc gate through the marketplace, install flow, and UI.
- Update plugin architecture docs to describe the new ABI metadata.
2026-08-29 10:34:47 +02:00
Hakan Seven 3024869de0 fix(i18n): localize linetype inheritance 2026-08-29 10:10:39 +03:00
Hakan Seven 8c0af9d584 fix(i18n): complete missing translations 2026-08-29 09:46:47 +03:00
Hakan Seven d9fddbe633 fix(release): align snap asset name 2026-08-29 02:35:36 +03:00
Hakan Seven 2413a224e1 Merge pull request #534 from UserDevtec/main 2026-08-29 02:26:46 +03:00
Hakan Seven 2be8e00066 style(icons): apply reviewed icon set 2026-08-29 02:23:21 +03:00
Hakan Seven 263e060d4a fix(acis): render parametric surface solids 2026-08-28 22:22:55 +03:00
Hakan Seven f61d65dced fix(i18n): correct jogged radius lookup
Refs #926
2026-08-28 21:20:29 +03:00
Hakan Seven 8dd3eb897b fix(properties): embed scrollbar lane 2026-08-28 21:05:26 +03:00
Hakan Seven d8f5753ffd Merge pull request #924 from ramox81/codex/fix-box-command-properties
Complete BOX command, properties, and grips
2026-08-28 20:44:34 +03:00
Hakan Seven fc93efeed7 fix(box): preserve construction semantics 2026-08-28 20:44:14 +03:00
Hakan Seven 365af68f8a Merge pull request #923 from ramox81/codex/fix-3dmesh-command-properties
Complete legacy 3D polygon mesh support
2026-08-28 20:26:54 +03:00
Hakan Seven e8cb752fab fix(mesh): complete polygon mesh support 2026-08-28 20:26:32 +03:00
Hakan Seven 6a782285ab Merge pull request #917 from ramox81/codex/fix-3dface-command-properties
Complete 3D face creation and editing
2026-08-28 20:15:06 +03:00
Hakan Seven 56bb652521 fix(face3d): repair edge editing 2026-08-28 20:14:41 +03:00
Hakan Seven 5c383a2441 Merge pull request #907 from ramox81/codex/fix-helix-command-properties
Fix parametric helix creation and properties
2026-08-28 20:06:00 +03:00
Hakan Seven 7f6e5c0405 fix(helix): repair parametric editing 2026-08-28 20:05:36 +03:00
Hakan Seven aa5b89c6d5 Merge pull request #905 from ramox81/codex/fix-properties-scrollbar-overlap
Prevent Properties scrollbar from covering rows
2026-08-28 19:48:34 +03:00
Hakan Seven 6da2685e13 chore(properties): integrate main 2026-08-28 19:48:12 +03:00
Hakan Seven aa6652f7c8 Merge pull request #903 from ramox81/codex/fix-3dpoly-behavior
Fix 3D polyline behavior and properties
2026-08-28 19:46:27 +03:00
Hakan Seven 50e5dcaaac fix(polyline): correct 3D smoothing 2026-08-28 19:46:13 +03:00