mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-30 00:22:01 +08:00
Follow-up 3bd0728b: Fixed the toolbar icons size, when it's set from Preferences.
see https://github.com/prusa3d/PrusaSlicer/issues/12838#issuecomment-2176534793
This commit is contained in:
parent
bafd65d55b
commit
0237acb38f
@ -5950,7 +5950,7 @@ void GLCanvas3D::_render_sequential_clearance()
|
||||
}
|
||||
|
||||
|
||||
bool GLCanvas3D::check_toolbar_icon_size(float init_scale, float& new_scale_to_save, int counter/* = 3*/)
|
||||
bool GLCanvas3D::check_toolbar_icon_size(float init_scale, float& new_scale_to_save, bool is_custom, int counter/* = 3*/)
|
||||
{
|
||||
const Size cnv_size = get_canvas_size();
|
||||
|
||||
@ -6006,6 +6006,9 @@ bool GLCanvas3D::check_toolbar_icon_size(float init_scale, float& new_scale_to_s
|
||||
|
||||
new_scale_to_save = std::min(new_scale / max_scale, 1.f);
|
||||
|
||||
if (is_custom && new_scale_to_save > init_scale)
|
||||
return false;
|
||||
|
||||
if (is_approx(init_scale, new_scale_to_save, 0.015f) || counter == 0)
|
||||
return true;
|
||||
|
||||
@ -6022,9 +6025,10 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale()
|
||||
if (wxGetApp().plater()->is_preview_shown())
|
||||
return;
|
||||
|
||||
const float init_scale = wxGetApp().toolbar_icon_scale();
|
||||
bool is_custom;
|
||||
const float init_scale = wxGetApp().toolbar_icon_scale(is_custom);
|
||||
float new_scale_to_save;
|
||||
if (check_toolbar_icon_size(init_scale, new_scale_to_save) &&
|
||||
if (check_toolbar_icon_size(init_scale, new_scale_to_save, is_custom) &&
|
||||
!is_approx(init_scale, new_scale_to_save, 0.015f))
|
||||
wxGetApp().set_auto_toolbar_icon_scale(new_scale_to_save);
|
||||
}
|
||||
|
@ -1053,7 +1053,7 @@ private:
|
||||
void _render_gcode_cog() { m_gcode_viewer.render_cog(); }
|
||||
void _render_selection();
|
||||
void _render_sequential_clearance();
|
||||
bool check_toolbar_icon_size(float init_scale, float& new_scale_to_save, int counter = 3);
|
||||
bool check_toolbar_icon_size(float init_scale, float& new_scale_to_save, bool is_custom, int counter = 3);
|
||||
#if ENABLE_RENDER_SELECTION_CENTER
|
||||
void _render_selection_center() { m_selection.render_center(m_gizmos.is_dragging()); }
|
||||
#endif // ENABLE_RENDER_SELECTION_CENTER
|
||||
|
@ -1965,7 +1965,7 @@ wxSize GUI_App::get_min_size(wxWindow* display_win) const
|
||||
return min_size;
|
||||
}
|
||||
|
||||
float GUI_App::toolbar_icon_scale(const bool is_limited/* = false*/) const
|
||||
float GUI_App::toolbar_icon_scale(bool& is_custom) const
|
||||
{
|
||||
#ifdef __APPLE__
|
||||
const float icon_sc = 1.0f; // for Retina display will be used its own scale
|
||||
@ -1980,13 +1980,12 @@ float GUI_App::toolbar_icon_scale(const bool is_limited/* = false*/) const
|
||||
if (val.empty() || auto_val.empty() || use_val.empty())
|
||||
return icon_sc;
|
||||
|
||||
is_custom = app_config->get_bool("use_custom_toolbar_size");
|
||||
|
||||
int int_val = use_val == "0" ? 100 : atoi(val.c_str());
|
||||
// correct value in respect to auto_toolbar_size
|
||||
int_val = std::min(atoi(auto_val.c_str()), int_val);
|
||||
|
||||
if (is_limited && int_val < 50)
|
||||
int_val = 50;
|
||||
|
||||
return 0.01f * int_val;
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ public:
|
||||
bool suppress_round_corners() const;
|
||||
wxSize get_min_size(wxWindow* display_win) const;
|
||||
int get_max_font_pt_size();
|
||||
float toolbar_icon_scale(const bool is_limited = false) const;
|
||||
float toolbar_icon_scale(bool& is_custom) const;
|
||||
void set_auto_toolbar_icon_scale(float scale) const;
|
||||
void check_printer_presets();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user