Skip to content

Add Show Top Components / Show Bottom Components toggles to View dropdown #755

@gsdali

Description

@gsdali

Summary

The PCB viewer's layer: dropdown toggles which copper layer is in the foreground (the others fade). On a densely populated 2-layer board with components on both sides, that doesn't help much when you want to hide all top-side or all bottom-side components — you still see both populations stacked on the canvas.

It would be useful to have two checkboxes in the existing View ▼ dropdown:

  • Show Top Components (default on)
  • Show Bottom Components (default on)

…that hide every SMT component on the corresponding side, while leaving through-hole components (any pcb_component that owns at least one pcb_plated_hole) visible regardless. Through-hole connectors / test points exist on both sides of the board and don't sensibly belong to either toggle.

Use cases I hit while building a 2-layer board

  • "Show me only the bottom side so I can compare against the bottom-layer datasheet drawing."
  • "How crowded is each side? Toggle one off, see the other in isolation."
  • "Hide the bottom-side decoupling caps that are visually crowding the top-side chip during placement work."
  • "Eyeball whether through-holes are correctly excluded from a one-sided assembly preview."

These are the same kinds of tasks people use the per-side stack-up toggles in KiCad / Altium for.

Out of scope

  • The existing layer: dropdown (which highlights the active layer and fades the others) stays unchanged. These toggles are about visibility, not foreground/background.
  • Traces, copper pours, board outline, vias, and edge cuts always render — they're not "components."
  • The toggles should persist across reloads via localStorage, like the existing view-menu toggles.

Proposed UI

Two new CheckboxMenuItem rows under "Show Silkscreen" in the View dropdown — same component, same styling.

I have a working implementation and PR up: #TBD.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions