mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-15 02:37:51 -06:00
QoL: Keyboard shortcuts updates & fixes (#3457)
* Bring back the shortcut to zoom in & out
* Update keyboard shortcut info
* Update keyboard shortcut info
* Different handling of shortcut 'T' for emboss text
Cherry-picked from prusa3d/PrusaSlicer@58e3143ad8
Co-authored-by: Filip Sykala - NTB T15p <Filip.Sykala@prusa3d.cz>
---------
Co-authored-by: Filip Sykala - NTB T15p <Filip.Sykala@prusa3d.cz>
(cherry picked from commit 002208fc8c
)
This commit is contained in:
parent
9d59cd66c4
commit
e713849fed
3 changed files with 23 additions and 11 deletions
|
@ -3221,8 +3221,8 @@ void GLCanvas3D::on_char(wxKeyEvent& evt)
|
||||||
// }
|
// }
|
||||||
// break;
|
// break;
|
||||||
//}
|
//}
|
||||||
//case 'I':
|
case 'I':
|
||||||
//case 'i': { _update_camera_zoom(1.0); break; }
|
case 'i': { _update_camera_zoom(1.0); break; }
|
||||||
//case 'K':
|
//case 'K':
|
||||||
//case 'k': { wxGetApp().plater()->get_camera().select_next_type(); m_dirty = true; break; }
|
//case 'k': { wxGetApp().plater()->get_camera().select_next_type(); m_dirty = true; break; }
|
||||||
//case 'L':
|
//case 'L':
|
||||||
|
@ -3234,8 +3234,8 @@ void GLCanvas3D::on_char(wxKeyEvent& evt)
|
||||||
//}
|
//}
|
||||||
//break;
|
//break;
|
||||||
//}
|
//}
|
||||||
//case 'O':
|
case 'O':
|
||||||
//case 'o': { _update_camera_zoom(-1.0); break; }
|
case 'o': { _update_camera_zoom(-1.0); break; }
|
||||||
//case 'Z':
|
//case 'Z':
|
||||||
//case 'z': {
|
//case 'z': {
|
||||||
// if (!m_selection.is_empty())
|
// if (!m_selection.is_empty())
|
||||||
|
|
|
@ -388,15 +388,24 @@ bool GLGizmosManager::is_running() const
|
||||||
|
|
||||||
bool GLGizmosManager::handle_shortcut(int key)
|
bool GLGizmosManager::handle_shortcut(int key)
|
||||||
{
|
{
|
||||||
if (!m_enabled || m_parent.get_selection().is_empty())
|
if (!m_enabled)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
auto it = std::find_if(m_gizmos.begin(), m_gizmos.end(),
|
auto is_key = [pressed_key = key](int gizmo_key) { return (gizmo_key == pressed_key - 64) || (gizmo_key == pressed_key - 96); };
|
||||||
[key](const std::unique_ptr<GLGizmoBase>& gizmo) {
|
// allowe open shortcut even when selection is empty
|
||||||
int gizmo_key = gizmo->get_shortcut_key();
|
if (GLGizmoBase* gizmo_emboss = m_gizmos[Emboss].get();
|
||||||
return gizmo->is_activable()
|
is_key(gizmo_emboss->get_shortcut_key())) {
|
||||||
&& ((gizmo_key == key - 64) || (gizmo_key == key - 96));
|
dynamic_cast<GLGizmoEmboss *>(gizmo_emboss)->on_shortcut_key();
|
||||||
});
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_parent.get_selection().is_empty())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
auto is_gizmo = [is_key](const std::unique_ptr<GLGizmoBase> &gizmo) {
|
||||||
|
return gizmo->is_activable() && is_key(gizmo->get_shortcut_key());
|
||||||
|
};
|
||||||
|
auto it = std::find_if(m_gizmos.begin(), m_gizmos.end(), is_gizmo);
|
||||||
|
|
||||||
if (it == m_gizmos.end())
|
if (it == m_gizmos.end())
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -258,6 +258,9 @@ void KBShortcutsDialog::fill_shortcuts()
|
||||||
{ "F", L("Gizmo Place face on bed") },
|
{ "F", L("Gizmo Place face on bed") },
|
||||||
{ "L", L("Gizmo SLA support points") },
|
{ "L", L("Gizmo SLA support points") },
|
||||||
{ "P", L("Gizmo FDM paint-on seam") },
|
{ "P", L("Gizmo FDM paint-on seam") },
|
||||||
|
{ "T", L("Gizmo Text emboss / engrave")},
|
||||||
|
{ "I", L("Zoom in")},
|
||||||
|
{ "O", L("Zoom out")},
|
||||||
{ "Tab", L("Switch between Prepare/Preview") },
|
{ "Tab", L("Switch between Prepare/Preview") },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue