From 0455b0bf96cab0d7e9b5f33e2b22b7b4fe8e8203 Mon Sep 17 00:00:00 2001 From: Tommaso Bianchi Date: Sun, 26 Jul 2026 04:58:02 +0200 Subject: [PATCH] Design tab: give the Surface drawer its own icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Surface drawer used design_extrude, the same face as the Add-material drawer, so the two buttons were indistinguishable in the feature bar. design_surface.svg is a draped patch — deliberately unlike design_plane (a flat parallelogram) and design_extrude (a box with an up-arrow) — with a faint interior rule so it reads as a skin rather than a solid face. Same visual language as the other 71: 24x24, no fill, #b6b6b6, stroke-width 0.85, round caps and joins. The five surface ENTRIES that also used design_extrude now use it too. That is not cosmetic tidying: a flyout button's face follows the last-picked entry (SetBitmap_(icon_names[i])), so changing only the drawer's default icon would have been undone the moment the user picked anything. Surface Loft keeps design_loft, which already suits it. The six rows still share one glyph between them, so they are told apart by label alone inside the flyout. Per-entry icons belong with snaporca-vrg (Draft/Shell reusing design_dressup), not here. Compiles clean; kernel untouched. Icon confirmed legible on hardware. Co-Authored-By: Claude Opus 5 (1M context) --- resources/images/design_surface.svg | 1 + src/slic3r/GUI/DesignPanel.cpp | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 resources/images/design_surface.svg diff --git a/resources/images/design_surface.svg b/resources/images/design_surface.svg new file mode 100644 index 0000000000..1299dd1a97 --- /dev/null +++ b/resources/images/design_surface.svg @@ -0,0 +1 @@ + diff --git a/src/slic3r/GUI/DesignPanel.cpp b/src/slic3r/GUI/DesignPanel.cpp index 953eddc2fa..9ce5f7b2ee 100644 --- a/src/slic3r/GUI/DesignPanel.cpp +++ b/src/slic3r/GUI/DesignPanel.cpp @@ -628,8 +628,10 @@ DesignPanel::DesignPanel(wxWindow* parent) fadd("pattern", b_pattern); // Surface: sheet-body tools (extrude / revolve / loft / fill / offset / thicken) - feat_dropdown("surface", "design_extrude", _L("Surface (extrude / revolve / loft / fill / offset / thicken)"), { - {"design_extrude", _L("Surface Extrude"), _L("Extrude a sketch into a sheet body (no end caps)"), + // design_surface, not design_extrude: sharing a face with the Add-material drawer made + // the two buttons indistinguishable in the bar. + feat_dropdown("surface", "design_surface", _L("Surface (extrude / revolve / loft / fill / offset / thicken)"), { + {"design_surface", _L("Surface Extrude"), _L("Extrude a sketch into a sheet body (no end caps)"), [this] { m_surf_extrude_sketch_ref = resolve_extrude_sketch(); if (m_surf_extrude_sketch_ref < 0) { @@ -640,7 +642,7 @@ DesignPanel::DesignPanel(wxWindow* parent) } open_tool(Tool::SurfaceExtrude); }, SHIFT('G')}, - {"design_extrude", _L("Surface Revolve"), _L("Revolve a sketch profile into a sheet body"), + {"design_surface", _L("Surface Revolve"), _L("Revolve a sketch profile into a sheet body"), [this] { m_surf_revolve_sketch_ref = resolve_extrude_sketch(); if (m_surf_revolve_sketch_ref < 0) { @@ -665,7 +667,7 @@ DesignPanel::DesignPanel(wxWindow* parent) m_surf_loft_refs.clear(); open_tool(Tool::SurfaceLoft); }, SHIFT('O')}, - {"design_extrude", _L("Surface Fill"), _L("Fill a sketch boundary with a smooth face"), + {"design_surface", _L("Surface Fill"), _L("Fill a sketch boundary with a smooth face"), [this] { m_surf_fill_sketch_ref = resolve_extrude_sketch(); if (m_surf_fill_sketch_ref < 0) { @@ -676,7 +678,7 @@ DesignPanel::DesignPanel(wxWindow* parent) } open_tool(Tool::SurfaceFill); }, SHIFT('Q')}, - {"design_extrude", _L("Surface Offset"), _L("Offset a sheet body's shell by a signed distance"), + {"design_surface", _L("Surface Offset"), _L("Offset a sheet body's shell by a signed distance"), [this] { populate_sheet_body_choices(m_surf_offset_body); if (m_surf_offset_body->GetCount() == 0) { @@ -687,7 +689,7 @@ DesignPanel::DesignPanel(wxWindow* parent) } open_tool(Tool::SurfaceOffset); }, SHIFT('U')}, - {"design_extrude", _L("Thicken Surface"), _L("Thicken a sheet body into a solid"), + {"design_surface", _L("Thicken Surface"), _L("Thicken a sheet body into a solid"), [this] { populate_sheet_body_choices(m_surf_thicken_body); if (m_surf_thicken_body->GetCount() == 0) {