diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index ffc1e7dcb..d43b0f24e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -84,9 +84,8 @@ void GLGizmoCut::on_start_dragging() void GLGizmoCut::on_update(const UpdateData& data) { - if (m_hover_id != -1) { + if (m_hover_id != -1) set_cut_z(m_start_z + calc_projection(data.mouse_ray)); - } } void GLGizmoCut::on_render() const @@ -149,7 +148,7 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit) static float last_y = 0.0f; static float last_h = 0.0f; - m_imgui->begin(_(L("Cut")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); + m_imgui->begin(_L("Cut"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); bool imperial_units = wxGetApp().app_config->get("use_inches") == "1"; @@ -157,8 +156,7 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit) float win_h = ImGui::GetWindowHeight(); y = std::min(y, bottom_limit - win_h); ImGui::SetWindowPos(ImVec2(x, y), ImGuiCond_Always); - if ((last_h != win_h) || (last_y != y)) - { + if (last_h != win_h || last_y != y) { // ask canvas for another frame to render the window in the correct position m_parent.request_extra_frame(); if (last_h != win_h) @@ -184,21 +182,20 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit) ImGui::Separator(); - m_imgui->checkbox(_(L("Keep upper part")), m_keep_upper); - m_imgui->checkbox(_(L("Keep lower part")), m_keep_lower); - m_imgui->checkbox(_(L("Rotate lower part upwards")), m_rotate_lower); + m_imgui->checkbox(_L("Keep upper part"), m_keep_upper); + m_imgui->checkbox(_L("Keep lower part"), m_keep_lower); + m_imgui->checkbox(_L("Rotate lower part upwards"), m_rotate_lower); ImGui::Separator(); - m_imgui->disabled_begin(!m_keep_upper && !m_keep_lower); - const bool cut_clicked = m_imgui->button(_(L("Perform cut"))); + m_imgui->disabled_begin((!m_keep_upper && !m_keep_lower) || m_cut_z <= 0.0 || m_max_z < m_cut_z); + const bool cut_clicked = m_imgui->button(_L("Perform cut")); m_imgui->disabled_end(); m_imgui->end(); - if (cut_clicked && (m_keep_upper || m_keep_lower)) { + if (cut_clicked && (m_keep_upper || m_keep_lower)) perform_cut(m_parent.get_selection()); - } } void GLGizmoCut::update_max_z(const Selection& selection) const