3D view hotkeys (orbit, roll, zoom), settings, About / markdown, tooling, and docs#97
3D view hotkeys (orbit, roll, zoom), settings, About / markdown, tooling, and docs#97
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 26deebb. Configure here.
|
|
||
| if (zoom_in) | ||
| { | ||
| m_view->zoom_view_wheel_notches(1.0, shift_finer); |
There was a problem hiding this comment.
Shift+= zoom always applies finer 0.1x step
High Severity
The GLFW_KEY_EQUAL case requires GLFW_MOD_SHIFT to activate zoom_in (since Shift+= produces + on US keyboards). But shift_finer is also derived from GLFW_MOD_SHIFT, so it's always true when zooming in via this key. This means zoom_view_wheel_notches(1.0, true) always applies the 0.1x finer factor, producing a zoom delta of 1 instead of 4 (with default settings). The main-keyboard zoom-in key is permanently 4x slower than NumPad +, contradicting the docs that say they're equivalent.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 26deebb. Configure here.
| const double v = g["view_roll_step_deg"].get<double>(); | ||
| EZY_ASSERT_MSG(v >= k_gui_view_roll_step_deg_min && v <= k_gui_view_roll_step_deg_max, | ||
| "settings gui.view_roll_step_deg out of range [0.1, 180]"); | ||
| m_view_roll_step_deg = v; |
There was a problem hiding this comment.
Settings JSON asserts crash app on out-of-range values
Medium Severity
Loading view_roll_step_deg and view_zoom_scroll_scale from user-editable JSON uses EZY_ASSERT_MSG (which calls DEBUG_BREAK / raise(SIGTRAP)) for range validation instead of silent clamping. Unlike existing settings like edge_dim_line_width which silently reject out-of-range values, an out-of-range value here crashes the app on startup. Additionally, the out-of-range value is still assigned after the assertion fires.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 26deebb. Configure here.
|
You have used all of your free Bugbot PR reviews. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |


Pull request:
Trailcode/hot-keys→mainSummary
Adds keyboard-driven 3D navigation (numpad orbit, shift-based roll with fallbacks, keyboard zoom with repeat), persisted settings for view rotation step and zoom scroll scale (with Shift for finer zoom), Help > About via imgui_markdown and bundled assets,
EZY_ASSERT_OR_RETURNhelpers indbg.h, pbf→png scripts, CMake /.gitignoreupdates, and usage / CHANGELOG updates including Num Lock guidance for the keypad.Related issues
sketch_underlay/ GUI changes—confirm in diff.Trailcode/b6in the issue body; only relate if this PR actually contains those commits (verify before linking in “Fixes”).User-facing changes
Occt_view::orbit_view_screen_step_deg).gui.view_zoom_scroll_scale; Shift applies finer step (×0.1).gui.view_roll_step_deg) and Zoom scroll scale (gui.view_zoom_scroll_scale); tooltips and usage links.usage.md,usage-occt-view.md,usage-settings.md).Technical highlights
src/occt_view.{h,cpp},src/gui_mode.cpp,src/gui.cpp,src/gui.hsrc/gui_settings.cpp,res/ezycad_settings.jsonsrc/dbg.hthird_party/imgui_markdown/,res/about.md,src/gui.cpp,CMakeLists.txtusage.md,usage-occt-view.md,usage-settings.md,CHANGELOG.mdscripts/pbf-to-png.py,scripts/pbf-to-png.ps1src/lua_console.cpp,src/python_console.cpp(settings JSON help text)Testing checklist
gui.view_roll_step_deg,gui.view_zoom_scroll_scale(save, restart, reload).Note
Medium Risk
Touches core input handling and OCCT camera/zoom behavior, plus settings persistence; regressions could affect navigation feel or key routing across platforms (especially numpad/Num Lock).
Overview
Enables keyboard 3D navigation: numpad orbit (
8/2/4/6), axis snap (5), Blender-style roll (Shift+NumPad 4/6with main-key/arrow fallbacks), and keyboard zoom (NumPad +/-,Shift+=,-) with key-repeat and Shift for finer increments.Adds new persisted GUI settings
gui.view_roll_step_degandgui.view_zoom_scroll_scale, surfaces them in a new Settings → 3D view navigation section, and wires them into OCCT zoom scaling and keyboard step sizes.Reworks Help → About into an in-app modal that renders bundled
res/about.md(with splash image + clickable links) via vendoredthird_party/imgui_markdown, and updates CMake packaging/preload to ship the new assets (plus cleans upres/default.ezy). Docs/changelog are updated accordingly, and a smallEZY_ASSERT_OR_RETURN*helper macro is added alongside newscripts/pbf-to-pngtooling and agent issue drafts.Reviewed by Cursor Bugbot for commit 26deebb. Bugbot is set up for automated code reviews on this repo. Configure here.