From 2dd3ef7cff32c9010433948c712c152154aba37b Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 18 Sep 2026 17:24:47 +0800 Subject: [PATCH] fix build errors on mac --- localization/i18n/list.txt | 1 + src/slic3r/GUI/CAD/DesignPanel.cpp | 20 ++++++++++---------- src/slic3r/GUI/CAD/SketchInlineEditor.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp | 11 +++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index ae33c5fc85..fbc718cae8 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -292,5 +292,6 @@ src/slic3r/GUI/AMSDryControl.cpp src/slic3r/GUI/AMSDryControl.hpp src/libslic3r/PresetBundle.cpp src/slic3r/GUI/CAD/DesignPanel.cpp +src/slic3r/GUI/CAD/SketchInlineEditor.cpp src/slic3r/GUI/Gizmos/GLGizmoPrimitive.cpp src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp diff --git a/src/slic3r/GUI/CAD/DesignPanel.cpp b/src/slic3r/GUI/CAD/DesignPanel.cpp index 6d9454a829..d6e0329ef8 100644 --- a/src/slic3r/GUI/CAD/DesignPanel.cpp +++ b/src/slic3r/GUI/CAD/DesignPanel.cpp @@ -403,7 +403,7 @@ DesignPanel::DesignPanel(wxWindow* parent) // bind to their default mode; the other modes stay in the toolbar flyout. Registered here // where select_tool is in scope; the closures run at key-press time (members are live by then). auto sk_key = [this, select_tool](int ch, DesignSketchTool::Mode m, const wxString& h) { - m_keys_sketch[ch] = [this, select_tool, m, h] { select_tool(m, h); }; + m_keys_sketch[ch] = [select_tool, m, h] { select_tool(m, h); }; }; sk_key('L', DesignSketchTool::Mode::Line, _L("Line — click start, then end")); sk_key('R', DesignSketchTool::Mode::CornerRect, _L("Rectangle — click two opposite corners")); @@ -1445,16 +1445,16 @@ DesignPanel::DesignPanel(wxWindow* parent) // Choose FIRST, then open: open_tool() titles the card from m_dressup_type, so setting // it afterwards left the header reading "Fillet 1" over a chamfer. Nothing in the // opener resets the combo, so this order is safe. - m_verb_actions["btn:dress#0"] = [this, open_feature, k_dress] { + m_verb_actions["btn:dress#0"] = [this, open_feature] { if (m_dressup_type) m_dressup_type->SetSelection(0); open_feature(k_dress); }; - m_verb_actions["btn:dress#1"] = [this, open_feature, k_dress] { + m_verb_actions["btn:dress#1"] = [this, open_feature] { if (m_dressup_type) m_dressup_type->SetSelection(1); open_feature(k_dress); }; for (int op = 0; op < 3; ++op) - m_verb_actions["btn:bool#" + std::to_string(op)] = [this, open_feature, k_bool, op] { + m_verb_actions["btn:bool#" + std::to_string(op)] = [this, open_feature, op] { open_feature(k_bool); if (m_bool_op) { m_bool_op->SetSelection(op); refresh_preview(); } }; for (int t = 0; t < 2; ++t) - m_verb_actions["btn:pat#" + std::to_string(t)] = [this, open_feature, k_pat, t] { + m_verb_actions["btn:pat#" + std::to_string(t)] = [this, open_feature, t] { open_feature(k_pat); if (m_pattern_type) m_pattern_type->SetSelection(t); }; auto* b_poly = icon_btn("design_polygon", _L("Polygon")); @@ -6625,7 +6625,7 @@ void DesignPanel::show_offer_menu(const wxPoint& screen_pos) mate_ghost = false; }; menu.Bind(wxEVT_MENU_HIGHLIGHT, - [this, cs_a, cs_b, opts, mate_base, &mate_ghost, drop_ghost](wxMenuEvent& e) { + [this, cs_a, cs_b, opts, &mate_ghost, drop_ghost](wxMenuEvent& e) { const int i = e.GetMenuId() - (mate_base + 1); // Off the palette (a verb row, the header, or nothing) — a stale ghost from the row // you just left is worse than none, so it goes as soon as the cursor does. @@ -6635,7 +6635,7 @@ void DesignPanel::show_offer_menu(const wxPoint& screen_pos) m_viewport->repaint_now(); // synchronous: the popup owns the loop, a queued repaint is never serviced }); - menu.Bind(wxEVT_MENU, [this, cs_a, cs_b, opts, mate_base, drop_ghost](wxCommandEvent& e) { + menu.Bind(wxEVT_MENU, [this, cs_a, cs_b, opts, drop_ghost](wxCommandEvent& e) { const int i = e.GetId() - (mate_base + 1); if (i < 0 || i >= int(opts.size()) || !opts[i].viable) return; drop_ghost(); // the real bodies are about to become the ghost's pose @@ -6666,7 +6666,7 @@ void DesignPanel::show_offer_menu(const wxPoint& screen_pos) // status message on screen, and clicking one created nothing at all. The whole mate palette // enumerated perfectly and fired nothing. Restricting the range keeps each half to its own ids // regardless of bind order. - menu.Bind(wxEVT_MENU_HIGHLIGHT, [this, &bound, base](wxMenuEvent& e) { + menu.Bind(wxEVT_MENU_HIGHLIGHT, [this, &bound](wxMenuEvent& e) { const int i = e.GetMenuId() - base; if (i < 0 || i >= int(bound.size()) || bound[i] == nullptr || bound[i]->hint == nullptr) return; @@ -6674,7 +6674,7 @@ void DesignPanel::show_offer_menu(const wxPoint& screen_pos) set_status(wxGetTranslation(wxString::FromUTF8(bound[i]->hint))); m_status->Update(); // the popup owns the loop; without this the line repaints late }, base, base + 499); // 499: the mate section starts at base + 500 (see mate_base) - menu.Bind(wxEVT_MENU, [this, &bound, base](wxCommandEvent& e) { + menu.Bind(wxEVT_MENU, [this, &bound](wxCommandEvent& e) { const int i = e.GetId() - base; if (i >= 0 && i < int(bound.size()) && bound[i]) run_offer_action(bound[i]->action); @@ -7935,7 +7935,7 @@ void DesignPanel::apply_live_constraint(SketchConstraintType type) constraint_reject_text(plan.reason, type), int(sel.size()))); return; case ConstraintPlan::Kind::AskValue: - m_viewport->open_inline_value(plan.prefill, [this, plan, commit](double v) { + m_viewport->open_inline_value(plan.prefill, [plan, commit](double v) { commit(plan.defs, v); }); return; diff --git a/src/slic3r/GUI/CAD/SketchInlineEditor.cpp b/src/slic3r/GUI/CAD/SketchInlineEditor.cpp index 9c438c7d06..8dfb939576 100644 --- a/src/slic3r/GUI/CAD/SketchInlineEditor.cpp +++ b/src/slic3r/GUI/CAD/SketchInlineEditor.cpp @@ -121,7 +121,7 @@ void SketchInlineEditor::do_commit() // just sits there and the user has no idea what it wants. Say so in the title line and // keep editing. ux_trace("refused", m_title, std::string("typed=") + m_buf); - m_err = (m_buf[0] == '\0') ? into_u8(_L("Enter a number")) : into_u8(_L("Not a number")); + m_err = (m_buf[0] == '\0') ? _u8L("Enter a number") : _u8L("Not a number"); m_focus_pending = true; return; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp index 88bd636563..195ceba713 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp @@ -15,7 +15,6 @@ #endif #include -#define L(s) Slic3r::GUI::I18N::translate((s)).c_str() #define UL(s) Slic3r::GUI::I18N::translate_utf8((s)).c_str() namespace Slic3r { @@ -374,15 +373,15 @@ void GLGizmoSketch::on_render_input_window(float x, float y, float bottom_limit) }; if (m_sp.is_pocket && has_sel) { - if (btn(L("Pocket (Cut)"), ok)) apply_pocket(); + if (btn(_u8L("Pocket (Cut)").c_str(), ok)) apply_pocket(); } else if (is_revolve) { - if (btn(L("Revolve"), ok)) apply_revolve(); + if (btn(_u8L("Revolve").c_str(), ok)) apply_revolve(); } else { - if (btn(L("Extrude"), ok)) apply_extrude(); + if (btn(_u8L("Extrude").c_str(), ok)) apply_extrude(); } - if (ImGui::Button(L("Clear All"), {-1,0})) clear_all(); - if (ImGui::Button(L("Close"), {-1,0})) m_parent.reset_all_gizmos(); + if (ImGui::Button(_u8L("Clear All").c_str(), {-1,0})) clear_all(); + if (ImGui::Button(_u8L("Close").c_str(), {-1,0})) m_parent.reset_all_gizmos(); GizmoImguiEnd(); ImGuiWrapper::pop_toolbar_style();