Home: axonometric view, fitted

DesignCanvas::set_view() and fit_view() were both written and then never called
from anywhere in the tree. The Design viewport has had no way back to a standard
view since it existed: no key, no button, nothing but orbiting by hand until the
model happens to drift into frame.

That is worse than a missing convenience. A camera left pointing along the bed
plane renders a scene that looks exactly like a failed renderer — geometry
present, nothing visible — and an hour went into blaming the software GL stack
before the real cause turned out to be two uncalled functions.

Home rather than a letter: every letter A-Z is already a Shift+letter tool
shortcut. Home is also the reset-the-view key most users arrive with. The
dispatcher needed no change, it keys on the raw wx keycode. set_view() already
does select_view + zoom_to_volumes, so this is fit and orient in one call.

Doc row added to the View toggles table in docs/design_tab.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Tommaso Bianchi
2026-08-12 18:59:22 +02:00
co-authored by Claude Opus 5
parent b305e8b154
commit 606026a920
2 changed files with 18 additions and 0 deletions
+17
View File
@@ -426,6 +426,23 @@ DesignPanel::DesignPanel(wxWindow* parent)
};
m_keys_feature['X'] = [this] { toggle_section_view(); }; // toggle the single section on/off
// Home: axonometric view, fitted to the model.
//
// DesignCanvas::set_view() and fit_view() were written and then never called from
// anywhere in the tree, so the Design viewport had NO way back to a standard view —
// no key, no button, nothing but orbiting by hand until the model happened to be in
// frame. A camera left pointing along the bed plane looks exactly like a renderer
// that has failed, which is how this was found.
//
// Home rather than a letter because every letter A-Z is already a Shift+letter tool
// shortcut, and because Home is the reset-the-view key users arrive with. set_view()
// already does select_view + zoom_to_volumes, so this is fit and orient in one.
m_keys_feature[WXK_HOME] = [this] {
if (!m_viewport) return;
m_viewport->set_view("iso");
set_status(_L("Isometric view, fitted"));
};
// Shared flyout glyph tint (used by BOTH the feature and sketch toolbars). Re-tint each
// design_* glyph to the DropDown's resolved TEXT colour so it reads on the popup in either
// theme: text_color is 0x363636, which darkModeColorFor() maps to a light tone in dark mode