mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 16:57:53 -06:00
Sidebar matrix fields focus handling
This commit is contained in:
parent
8854276965
commit
334f747fa9
3 changed files with 18 additions and 3 deletions
|
@ -3581,6 +3581,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas)
|
|||
, m_view_toolbar(nullptr)
|
||||
#endif // ENABLE_REMOVE_TABS_FROM_PLATER
|
||||
, m_use_clipping_planes(false)
|
||||
, m_sidebar_field("")
|
||||
, m_config(nullptr)
|
||||
, m_process(nullptr)
|
||||
, m_model(nullptr)
|
||||
|
@ -5566,6 +5567,17 @@ void GLCanvas3D::update_gizmos_on_off_state()
|
|||
m_gizmos.update_on_off_state(get_selection());
|
||||
}
|
||||
|
||||
void GLCanvas3D::handle_sidebar_focus_event(const std::string& opt_key, bool focus_on)
|
||||
{
|
||||
m_sidebar_field = focus_on ? opt_key : "";
|
||||
|
||||
if (!m_sidebar_field.empty())
|
||||
{
|
||||
m_gizmos.reset_all_states();
|
||||
m_dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool GLCanvas3D::_is_shown_on_screen() const
|
||||
{
|
||||
return (m_canvas != nullptr) ? m_canvas->IsShownOnScreen() : false;
|
||||
|
|
|
@ -794,6 +794,7 @@ private:
|
|||
ClippingPlane m_clipping_planes[2];
|
||||
bool m_use_clipping_planes;
|
||||
mutable SlaCap m_sla_caps[2];
|
||||
std::string m_sidebar_field;
|
||||
|
||||
mutable GLVolumeCollection m_volumes;
|
||||
Selection m_selection;
|
||||
|
@ -995,7 +996,7 @@ public:
|
|||
void viewport_changed();
|
||||
#endif // ENABLE_CONSTRAINED_CAMERA_TARGET
|
||||
|
||||
void handle_sidebar_focus_event(const std::string& opt_key) {}
|
||||
void handle_sidebar_focus_event(const std::string& opt_key, bool focus_on);
|
||||
|
||||
private:
|
||||
bool _is_shown_on_screen() const;
|
||||
|
|
|
@ -41,6 +41,8 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) :
|
|||
change_scale_value(new_value);
|
||||
else if (param == "size")
|
||||
change_size_value(new_value);
|
||||
|
||||
wxGetApp().plater()->canvas3D()->handle_sidebar_focus_event(opt_key, false);
|
||||
};
|
||||
|
||||
m_og->m_fill_empty_value = [this](const std::string& opt_key)
|
||||
|
@ -76,11 +78,12 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) :
|
|||
}
|
||||
|
||||
m_og->set_value(opt_key, double_to_string(value));
|
||||
wxGetApp().plater()->canvas3D()->handle_sidebar_focus_event(opt_key, false);
|
||||
};
|
||||
|
||||
m_og->m_set_focus = [this](const std::string& opt_key)
|
||||
{
|
||||
wxGetApp().plater()->canvas3D()->handle_sidebar_focus_event(opt_key);
|
||||
wxGetApp().plater()->canvas3D()->handle_sidebar_focus_event(opt_key, true);
|
||||
};
|
||||
|
||||
ConfigOptionDef def;
|
||||
|
@ -300,7 +303,6 @@ void ObjectManipulation::reset_rotation_value()
|
|||
|
||||
void ObjectManipulation::reset_scale_value()
|
||||
{
|
||||
m_og->set_value("scale_unit", _("%"));
|
||||
m_og->set_value("scale_x", def_100);
|
||||
m_og->set_value("scale_y", def_100);
|
||||
m_og->set_value("scale_z", def_100);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue