FIX:frequent calls to _update_imgui_select_plate_toolbar

Jira: STUDIO-5488
Change-Id: I12e6f37c2fe94de004aa6da43421970d6df10f0f
This commit is contained in:
zhou.xu 2023-12-06 20:19:11 +08:00 committed by Lane.Wei
parent 1be42a1646
commit 7faa61c5dd
4 changed files with 21 additions and 10 deletions

View File

@ -6273,7 +6273,7 @@ void GLCanvas3D::_update_select_plate_toolbar_stats_item(bool force_selected) {
bool GLCanvas3D::_update_imgui_select_plate_toolbar()
{
bool result = true;
if (!m_sel_plate_toolbar.is_enabled()) return false;
if (!m_sel_plate_toolbar.is_enabled() || m_sel_plate_toolbar.is_render_finish) return false;
_update_select_plate_toolbar_stats_item();
@ -7718,6 +7718,7 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar()
}
imgui.end();
m_sel_plate_toolbar.is_render_finish = true;
}
//BBS: GUI refactor: GLToolbar adjust

View File

@ -58,6 +58,13 @@ void IMToolbar::del_stats_item()
m_all_plates_stats_item = nullptr;
}
void IMToolbar::set_enabled(bool enable)
{
m_enabled = enable;
if (!m_enabled)
is_render_finish = false;
}
bool IMReturnToolbar::init()
{
bool compress = false;

View File

@ -49,7 +49,7 @@ public:
float icon_height;
bool is_display_scrollbar;
bool show_stats_item{ false };
bool is_render_finish{false};
IMToolbar() {
icon_width = DEFAULT_TOOLBAR_BUTTON_WIDTH;
icon_height = DEFAULT_TOOLBAR_BUTTON_HEIGHT;
@ -63,7 +63,7 @@ public:
float fontScale;
bool is_enabled() const { return m_enabled; }
void set_enabled(bool enable) { m_enabled = enable; }
void set_enabled(bool enable);
void set_icon_size(float width, float height) {
icon_width = width;

View File

@ -5778,15 +5778,18 @@ void Plater::priv::set_current_panel(wxPanel* panel, bool no_slice)
};
//BBS: add the collapse logic
if (panel == preview && q->only_gcode_mode()) {
this->sidebar->collapse(true);
preview->get_canvas3d()->enable_select_plate_toolbar(false);
}
else if (panel == preview && q->using_exported_file() && (q->m_valid_plates_count <= 1)) {
preview->get_canvas3d()->enable_select_plate_toolbar(false);
if (panel == preview) {
if (q->only_gcode_mode()) {
this->sidebar->collapse(true);
preview->get_canvas3d()->enable_select_plate_toolbar(false);
} else if (q->using_exported_file() && (q->m_valid_plates_count <= 1)) {
preview->get_canvas3d()->enable_select_plate_toolbar(false);
} else {
preview->get_canvas3d()->enable_select_plate_toolbar(true);
}
}
else {
preview->get_canvas3d()->enable_select_plate_toolbar(true);
preview->get_canvas3d()->enable_select_plate_toolbar(false);
}
if (current_panel == panel)