Skip to content

Shell v2 — Onda B (alicerces): cor, diálogos, grade, travas, tortas, pincel e prévia - #44

Open
raillen wants to merge 5 commits into
shell-v2/onda-afrom
shell-v2/onda-b
Open

raillen wants to merge 5 commits into
shell-v2/onda-afrom
shell-v2/onda-b

Conversation

@raillen

@raillen raillen commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Empilhado sobre #43 (Onda A): o diff mostra só a Onda B. Quando o #43 entrar, a base passa a ser refactor/architecture-foundation.

O que entra

ID Item Status
B1/A8 PetuniaColorPanel único, paletas nomeadas no documento (Undo), embutido no pincel, cor no rail DONE
B2 Cursor do pincel 3D/2D compartilhado (dureza, opacidade, dispersão, tamanho) e eco 3D↔UV DONE
B3 Quadro de prévia da ferramenta na vista (âncora, seta, valor, digitado) DONE
B4 Registro de propriedades animáveis (petunia_project::animatable) DONE (contrato; GUI na C5)
B5 Moldura própria de diálogo (Wayland), cartão de operação arrastável DONE
B6 Eixo Y oculto, eixo por eixo, grade configurável com botão no cabeçalho DONE
B7 Travas por canal no objeto, respeitadas por modal/digitado/nudge; cadeado no campo DONE
B8 Guia de linguagem visual (website/docs/09-ui/visual-language.md) IN PROGRESS (aguarda aprovação)
B9 Menus em torta (Shift+A, Alt+V, Alt+D) com teclado e lista DONE

Verificação

Gate Resultado Status
cargo fmt --all -- --check limpo pass
cargo clippy -D warnings (8 crates, all targets/features) 0 avisos pass
Rust 7 crates --all-features, PETUNIA_REQUIRE_GL=1 1615 testes, 0 falhas, GL sem SKIPPED pass
Qt offscreen --test-threads=1 49 testes, 0 falhas pass
shell_v2 harness 303 verificações, 0 falhas, 5 execuções pass
xtask docs-generate --check e validadores do tracker sem drift; consistentes pass
Janela real com GPU (Wayland), Windows, leitor de tela, alto contraste, 150/200% — not run

Riscos e notas

  • Asset::transform_locks é sempre serializado: o layout legado em postcard é posicional e não tolera omitir um campo no meio do Asset.
  • Atalhos novos: view.pie_view (Alt+V) e model.pie_select_domain (Alt+D), remapeáveis. A torta de Adicionar usa a tecla de model.primitives.
  • Achado fora do escopo: view.frame_selection só agenda camera_frame, e nada o consome no shell Qt. Fica para uma tarefa separada.

Fechamento da Onda B (commit c701532)

ID Item Status
B8 Guia de linguagem visual aprovado; guias de snap com tokens do tema DONE
B10 Seleção Automática (Sólido só o visível; Raio-X/Wireframe através) + 3 defeitos corrigidos DONE
B11 Alças do gizmo do Selecionar configuráveis nas Preferências DONE
B12 Componentes de edição discretos (capturas GL antes/depois) DONE
B13 Campos densos (28 px) e módulos compactos; rótulo acima mantido DONE
B14 Seletor de cor compacto e menus densos DONE
B15 Orientação de transformação: Global, Local, Normal, Vista DONE

Gates: fmt, clippy -D warnings (8 crates), Rust 1628 testes (GL sem skip), Qt offscreen 51, shell_v2 315 × 5, docs-generate --check — pass. Janela real com GPU, Windows, leitor de tela — not run.

🤖 Generated with Claude Code

…eco do pincel e prévia

- B1/A8: PetuniaColorPanel único (roda/caixa, RGB/HSL/HSV + alfa, hex) com paletas
  nomeadas no documento (PaletteCmd com Undo); embutido no pincel (a opacidade é o
  alfa) e amostra de cor no rail do Paint.
- B2: cursor do pincel compartilhado 3D/2D (dureza em degradê, opacidade, dispersão e
  variação de tamanho) e eco espelhado 3D↔UV.
- B3: quadro de prévia da ferramenta na vista (âncora, seta na normal, valor, digitado)
  para extrude, push/pull, inset, bevel, escala e knife.
- B4: registro de propriedades animáveis (id, dono, tipo, unidade, faixa) com recusa
  de valores hostis.
- B5: moldura própria de diálogo (Wayland): arrastar, redimensionar, Ctrl+Alt+setas e
  geometria lembrada; cartão de operação arrastável na vista.
- B6: eixo Y oculto por padrão, eixo por eixo, grade com extensão/ladrilho/opacidade
  como preferência e botão no cabeçalho da vista; teto de linhas.
- B7: travas por canal no objeto (Undo), respeitadas no modal (gizmo/G/R/S), no valor
  digitado e no nudge; cadeado dentro do campo (clique ou Alt+L).
- B9: menus em torta (Shift+A, Alt+V, Alt+D) por direção, número, teclado e lista.
- B8: guia de linguagem visual proposto (aguarda aprovação).

Gates: fmt, clippy -D warnings (8 crates), Rust 1615 testes com GL sem skip, Qt
offscreen 49 testes, shell_v2 303 verificações em 5 execuções, docs-generate --check,
validadores do tracker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 19, 2026 07:44
@vercel

vercel Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
petunia3d Ready Ready Preview Oct 19, 2026 1:34pm UTC

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… vê, B11 gizmo do Selecionar configurável)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mento, B12 seleção suave, B13 painel denso, B14 Paint compacto, B15 orientação)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ável, overlays suaves, painel denso, Paint compacto e orientação

- B10: política de seleção Automática (padrão; Sólido só o visível, Raio-X e
  Wireframe através), Só visível e Através no cabeçalho da vista, com VSP-004
  preservado (o Raio-X nunca muda a política). Defeitos corrigidos, cada um com
  teste de regressão que falhava antes:
  - o raio-triângulo sem folga vazava pela diagonal dos quads (125/1600 raios);
    uma única interseção com folga de 1e-5, e as cópias delegam a ela;
  - o gizmo do Selecionar engolia o clique em vértice/aresta vizinho (hover e
    clique agora usam a mesma regra);
  - o gizmo aparecia em domínio de componente sem nada selecionado.
- B11: alças do gizmo do Selecionar (mover/girar/escalar) nas Preferências.
- B12: componentes de edição discretos (pontos de 2/3 px, arestas escuras, face
  com tinta leve e contorno), com capturas GL antes/depois.
- B13: campos na altura densa do tema (28 px, o alvo mínimo) e módulos compactos;
  rótulo acima mantido por decisão do usuário.
- B14: seletor de cor compacto no pincel e menus densos (24 px por item).
- B15: orientação de transformação (Global, Local, Normal, Vista).
- B8: guia aprovado; guias de snap com tokens do tema e halo.
- Enquadrar (F/Home): o tick do shell avança camera_frame; com movimento
  reduzido salta ao alvo (trabalho da sessão paralela de verificação).

Gates: fmt, clippy -D warnings (8 crates), Rust 1628 testes com GL sem skip, Qt
offscreen 51 testes, shell_v2 315 verificações em 5 execuções, docs-generate
--check, validadores do tracker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — c7015320 Deployed Oct 19, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants