Gizmo shortcuts (#9604)

* Gizmo shortcuts

* Delete invalid comment
This commit is contained in:
Kiss Lorand
2025-05-12 17:11:39 +03:00
committed by GitHub
parent bd67bd8270
commit 1a5b238ba4
26 changed files with 388 additions and 135 deletions

View File

@@ -628,8 +628,6 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
// non-organic tree support use max_bridge_length instead of bridge_no_support
toggle_line("max_bridge_length", support_is_normal_tree);
toggle_line("bridge_no_support", !support_is_normal_tree);
// This is only supported for auto normal tree
toggle_line("support_critical_regions_only", is_auto(support_type) && support_is_tree);
for (auto el : { "support_interface_spacing", "support_interface_filament",

View File

@@ -41,6 +41,12 @@ std::string GLGizmoAssembly::on_get_name() const
}
}
bool GLGizmoAssembly::on_init()
{
m_shortcut_key = WXK_CONTROL_Y;
return true;
}
bool GLGizmoAssembly::on_is_activable() const
{
const Selection& selection = m_parent.get_selection();

View File

@@ -24,7 +24,7 @@ public:
std::string get_gizmo_entering_text() const override { return _u8L("Entering Assembly gizmo"); }
std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Assembly gizmo"); }
protected:
//bool on_init() override;
bool on_init() override;
std::string on_get_name() const override;
bool on_is_activable() const override;
//void on_render() override;

View File

@@ -42,8 +42,8 @@ bool GLGizmoBrimEars::on_init()
{
m_new_point_head_diameter = get_brim_default_radius();
m_shortcut_key = WXK_CONTROL_L;
m_shortcut_key = WXK_CONTROL_E;
m_desc["head_diameter"] = _L("Head diameter");
m_desc["max_angle"] = _L("Max angle");
@@ -168,10 +168,10 @@ void GLGizmoBrimEars::render_points(const Selection &selection)
double radius = (double) brim_point.head_front_radius * RenderPointScale;
const Transform3d center_matrix =
instance_matrix
* Geometry::translation_transform(brim_point.pos.cast<double>())
instance_matrix
* Geometry::translation_transform(brim_point.pos.cast<double>())
// Inverse matrix of the instance scaling is applied so that the mark does not scale with the object.
* instance_scaling_matrix_inverse
* instance_scaling_matrix_inverse
* q
* Geometry::scale_transform(Vec3d{radius, radius, .2});
if (i < m_grabbers.size()) {
@@ -278,7 +278,7 @@ bool GLGizmoBrimEars::on_mouse(const wxMouseEvent& mouse_event)
if (mouse_event.Moving()) {
gizmo_event(SLAGizmoEventType::Moving, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), false);
}
// when control is down we allow scene pan and rotation even when clicking
// over some object
bool control_down = mouse_event.CmdDown();
@@ -287,14 +287,14 @@ bool GLGizmoBrimEars::on_mouse(const wxMouseEvent& mouse_event)
const Selection &selection = m_parent.get_selection();
int selected_object_idx = selection.get_object_idx();
if (mouse_event.LeftDown()) {
if ((!control_down || grabber_contains_mouse) &&
if ((!control_down || grabber_contains_mouse) &&
gizmo_event(SLAGizmoEventType::LeftDown, mouse_pos, mouse_event.ShiftDown(), mouse_event.AltDown(), false))
// the gizmo got the event and took some action, there is no need
// to do anything more
return true;
} else if (mouse_event.RightDown()){
if (!control_down && selected_object_idx != -1 &&
gizmo_event(SLAGizmoEventType::RightDown, mouse_pos, false, false, false))
gizmo_event(SLAGizmoEventType::RightDown, mouse_pos, false, false, false))
// event was taken care of
return true;
} else if (mouse_event.Dragging()) {

View File

@@ -201,7 +201,7 @@ void KBShortcutsDialog::fill_shortcuts()
#else
{ ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog") },
#endif // __APPLE
// Switch table page
{ ctrl + "Tab", L("Switch table page")},
//DEL
@@ -257,15 +257,19 @@ void KBShortcutsDialog::fill_shortcuts()
{ctrl + "Z", L("Undo")},
{ctrl + "Y", L("Redo")},
{ "M", L("Gizmo move") },
{ "S", L("Gizmo scale") },
{ "R", L("Gizmo rotate") },
{ "S", L("Gizmo scale") },
{ "F", L("Gizmo place face on bed") },
{ "C", L("Gizmo cut") },
{ "F", L("Gizmo Place face on bed") },
{ "B", L("Gizmo mesh boolean") },
{ "L", L("Gizmo SLA support points") },
{ "P", L("Gizmo FDM paint-on seam") },
{ "T", L("Gizmo Text emboss / engrave")},
{ "I", L("Zoom in")},
{ "O", L("Zoom out")},
{ "T", L("Gizmo text emboss/engrave") },
{ "U", L("Gizmo measure") },
{ "Y", L("Gizmo assemble") },
{ "E", L("Gizmo brim ears") },
{ "I", L("Zoom in") },
{ "O", L("Zoom out") },
{ "Tab", L("Switch between Prepare/Preview") },
};