ImGui docking, add-node undo/redo fixes, and settings defaults#180
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Closes #179
Summary
imgui_ini.res/ezycad_settings.jsondefaults (layout, theme, grid, dimensions, snap colors).Add node fixes
hide_dist_edit(false)/hide_angle_edit(false)on Escape; route Escape toon_keywhile dist edit is focusedSketch_op_recorderbeforeadd_new_node/get_node_exactin rubber-band commit pathsrestore_curr_node_at_pt_()inSketch_delta::apply_forward_originexclusion fromtry_pick_existing_nodeCircle / arc undo-redo fix
Repro: create a circle (center + radius click), undo, redo — debug pane showed 4 edges and 3 extra permanent nodes instead of the original 2 edges.
Root cause: on redo,
restore_curr_node_at_pt_()revived stencil/bulge nodes fromcurr_arc_edgesand then calledsplit_arcs_at_node_if_interior, splitting each semicircle in half. Bulge nodes were also revived withget_node_exact(pt, true), promoting them to permanent.Fix: in
restore_curr_node_at_pt_(), treat nodes matching arc-defining points (pt_a/pt_b/pt_cincurr_arc_edges) specially:pt_b): revive without making permanent; skip interior splits.pt_a/pt_c): revive without making permanent (split is already a no-op at endpoints).View / chamfer fix
Repro: new project, rotate view, view cube Top (zoom to origin), zoom out, draw square, extrude, chamfer, then rotate/zoom — view jumped to empty space and
FlushViewEventscrashed withStandard_ProgramError.replace_picked_shape_(): clear hover/selection,Unhilight, remove old shape,Displayreplacementapply_camera_projection()runs at start ofon_mode()(before shape show/redisplay)try/catchinflush_view_events()clears selection/hover and aborts view animationSettings storage (for reference)
%APPDATA%\EzyCad\ezycad_settings.jsonres/ezycad_settings.json~/.config/EzyCad/ezycad_settings.json~/Library/Application Support/EzyCad/ezycad_settings.jsonTest plan
EzyCad_tests.exe --gtest_filter=Sketch_test.AddNode_*:Sketch_test.NewFile_clears_undo_stacks:Sketch_test.DimensionTool_picks_sketch_originEzyCad_tests.exe --gtest_filter=Sketch_test.Undo_single_arc_via_recorder:Sketch_test.Undo_circle_via_recorder