Repository navigation
Cairo shim refactor - #1022
Cairo shim refactor#1022
Conversation
… all moved to WindowInformation (as a pimpl).
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
There was a problem hiding this comment.
🟡 Changes recommended
Rendering regressions, failed-export state restoration, and dependency integration issues remain unresolved.
6 open issues
Use HTTPS URL for anonymous Mansoura submodule checkout · New Include Mansoura sources in source release archives · New Make Mansoura library a prerequisite of all link targets · New Restore model transformations when PNG export fails · New Use Mansoura scale factors for high-DPI font scaling · New Preserve vertical label when setting Mansoura text angle · New
1 file not reviewed
gui-js/package-lock.json: Generated file
What changed in this PR
Moves Minsky’s rendering from its local Cairo shim to Mansoura, updating drawing interfaces, native-window exports, bindings and tests.
Changes:
- Migrates model and equation rendering to Mansoura.
- Replaces Godley popup interfaces with editor interfaces.
- Integrates the new dependency and updates rendering tests.
| File | Description |
|---|---|
| test/testSheet.cc | Adds sheet drawing coverage. |
| test/testPlotWidget.cc | Tests drawing and cached legend sizes. |
| test/testModel.cc | Migrates rendering fixtures and editor tests. |
| test/testMinsky.cc | Updates the editor include. |
| test/testLock.cc | Uses Mansoura for drawing tests. |
| test/testGrid.cc | Updates drawing mocks and calls. |
| test/testCanvas.cc | Uses Mansoura plot styles. |
| test/Makefile | Adds Mansoura includes and linking. |
| test/00/godleyTableWindow.sh | Removes popup rendering regression test. |
| schema/schemaHelper.h | Adds enum conversion helper. |
| schema/schema3.h | Migrates palette types. |
| schema/schema2.h | Migrates palette types and descriptors. |
| schema/schema1.h | Migrates plot-side type. |
| schema/schema0.h | Migrates legacy plot types. |
| schema/schema0.cc | Removes obsolete descriptor include. |
| schema/plotOptions.h | Uses Mansoura plot options. |
| RESTService/typescriptAPI.cc | Updates generated API types. |
| RESTService/pyminsky.cc | Adds rendering descriptors. |
| model/wire.h | Migrates wire drawing interface. |
| model/wire.cc | Uses abstract drawing and path operations. |
| model/windowInformation.h | Declares buffered rendering callback. |
| model/windowInformation.cc | Implements buffered rendering. |
| model/variablePane.h | Updates cell and pane interfaces. |
| model/variablePane.cc | Migrates measurement and drawing. |
| model/variable.h | Migrates rendering caches and mini-plots. |
| model/variable.cc | Migrates drawing and gates slider hit-testing. |
| model/userFunction.h | Updates rendering interfaces. |
| model/userFunction.cc | Updates icon drawing signature. |
| model/switchIcon.h | Updates drawing interface. |
| model/switchIcon.cc | Uses Mansoura drawing and colours. |
| model/SVGItem.h | Removes local SVG renderer declaration. |
| model/SVGItem.cc | Removes local SVG implementation. |
| model/sheet.h | Updates drawing interfaces. |
| model/sheet.cc | Migrates sheet and text rendering. |
| model/renderNativeWindow.h | Adds abstract rendering and export interfaces. |
| model/renderNativeWindow.cc | Delegates rendering and exports to Mansoura. |
| model/ravelWrap.h | Updates Ravel rendering types. |
| model/ravelWrap.cc | Uses the new Ravel adapter. |
| model/ravelRenderer.h | Adds Mansoura-to-Ravel rendering adapter. |
| model/pubTab.h | Updates redraw interface. |
| model/pubTab.cc | Migrates publication drawing. |
| model/plotWidget.h | Uses Mansoura plotting interfaces. |
| model/plotWidget.cc | Migrates plotting and cached legend hit-testing. |
| model/phillipsDiagram.h | Updates drawing and redraw interfaces. |
| model/phillipsDiagram.cc | Migrates diagram rendering. |
| model/operationRS2.cc | Adds Mansoura descriptors. |
| model/operationRS1.cc | Adds Mansoura descriptors. |
| model/operationRS.cc | Adds Mansoura descriptors. |
| model/operationBase.h | Migrates rendering cache and interfaces. |
| model/operation.h | Updates operation drawing helpers. |
| model/operation.cc | Migrates operation and path rendering. |
| model/minskyCairoRenderer.h | Removes the old Ravel adapter. |
| model/minsky.h | Updates SVG type and removes popup redraw API. |
| model/minsky.cc | Updates font settings and removes popup redraw logic. |
| model/lock.h | Migrates SVG and drawing types. |
| model/lock.cc | Uses Mansoura lock rendering. |
| model/item.h | Updates shared drawing interfaces. |
| model/item.cc | Migrates drawing and bounds measurement. |
| model/intOp.h | Updates drawing interface. |
| model/intOp.cc | Migrates clipping paths. |
| model/ICairoShim.h | Removes the local drawing abstraction. |
| model/group.h | Updates group rendering interfaces. |
| model/group.cc | Migrates group and edge-variable drawing. |
| model/grid.h | Passes drawing contexts through grid interfaces. |
| model/grid.cc | Updates grid drawing calls. |
| model/godleyTableEditor.h | Migrates editor interfaces and removes popup class. |
| model/godleyTableEditor.cc | Migrates table rendering and adds bounds guards. |
| model/godleyIcon.h | Removes popup state and updates rendering types. |
| model/godleyIcon.cc | Migrates table measurement and icon rendering. |
| model/fontDisplay.h | Uses Mansoura text rendering. |
| model/equationDisplay.h | Updates redraw interface. |
| model/equationDisplay.cc | Migrates equation rendering and measurement. |
| model/dataOp.h | Updates drawing interface. |
| model/CSVDialog.cc | Removes unused rendering aliases. |
| model/canvas.h | Updates canvas rendering interfaces. |
| model/canvas.cc | Migrates drawing, recentring and PNG export. |
| model/cairoItems.h | Updates variable-rendering helpers. |
| model/cairoItems.cc | Uses Mansoura measurement and triangle drawing. |
| Makefile | Builds and links Mansoura. |
| gui-js/package-lock.json | Removes optional peer dependency entries. |
| gui-js/libs/ui-components/src/lib/godley-widget-view/godley-widget-view.component.ts | Switches to editor API and removes native rendering hooks. |
| gui-js/apps/minsky-electron/src/app/managers/GodleyMenuManager.ts | Routes menu actions to the editor. |
| gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts | Routes context actions to the editor. |
| gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts | Removes popup widget adjustment. |
| gui-js/apps/minsky-electron/src/app/events/electron.events.ts | Routes Godley events to the editor. |
| engine/equations.h | Updates equation rendering interfaces. |
| engine/cairoShimCairo.h | Removes local Cairo backend declaration. |
| engine/cairoShimCairo.cc | Removes local Cairo backend implementation. |
| createLinkGroupIcons.cc | Uses Mansoura palette colours. |
| .gitmodules | Registers the Mansoura submodule. |
Review effort: Balanced
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…minsky into cairoShim-refactor

This change is