Skip to content

UI: unify Material icons across ARSAS navigation, onboarding and primary toolbars - #575

Draft
masarray wants to merge 9 commits into
fix/m214-operator-icon-single-source-20261015from
ui/material-icons-consistency-20261015
Draft

masarray wants to merge 9 commits into
fix/m214-operator-icon-single-source-20261015from
ui/material-icons-consistency-20261015

Conversation

@masarray

@masarray masarray commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Operator visual consistency / source-of-truth

Exact head 9e89b20707b547d80200e3b1e0dd7e0fd4f2e7a8. Based on Draft PR #574 (Events duplication fix) b725268f; no merges to main, no engine pin, IEC acquisition, server enablement or control changes.

Changes

  • One centrally declared local set of 26 canonical Google Material Icons (24dp, filled SVG geometry converted to WPF) in App.xaml; styles and action templates shared across WPF. Official source: google/material-design-icons; Apache-2.0 attribution, full license and redistribution packaging added. No icon font/CDN/runtime asset retrieval.
  • Eight navigation destinations now each own exactly one Material-family glyph. Four preexisting operator-supplied Material Symbols SVG geometries retained verbatim (Events, Alarm, FAT, Browser); Explorer, Live, GOOSE and Diagnostics now use official Google Material. Diagnostics live alert badge remains.
  • Events duplicate remains fixed by PR M2.14 UI: remove double Events glyph from overlapping icon templates #574 idempotent P2 decorator. Templates for 16 industrial shared actions now use Material resources rather than Lucide outlines. Toolbar buttons previously text-only obtain one icon through ContentTemplate without changing Content/Tag/Click/binding behavior (Read, Read All, Refresh, Cancel, Browse, RCB, Export, Copy, ACK, etc).
  • Add IED in center uses the exact existing OperatorAddIedIcon as left-rail, fixed in both dynamic launcher builders MainWindow.IoTesting.cs and MainWindow.ExplorerHeroActions.cs, and first-run repair fallback. Old LucidePlus no longer appears in any launcher, and new filled style replaces outline glyph style.
  • NTP stays ONE composite clock + server Material symbol, with toggle, picker and activity status untouched.
  • Existing MainWindow magnifier/save/play/stop/edit/tune/open/refresh assets now reference Material, replacing visible mixed Lucide icons. P2 legacy geometry definitions remain only for compatibility with older consumers; rendered templates are Material.
  • Regression added for 8 glyph owners/indices, 26 geometry parse/uniqueness, old P2 templates, dynamic Add IED paths, toolbar action mapping, NTP single icon/behavior and license packaging.

Gate and limits

  • Require exact-SHA Windows full regression + native ArdIrec/CTest, portable single EXE smoke, CI.
  • This is the operator MainWindow, onboarding and shared P2 workbench consistency pass; deeply nested specialized windows will retain existing vector resources unless explicitly migrated/verified. No styling changes to domain DataGrid values, report q/t, control semantics or runtime SSOT.
  • Physical visual check required on Windows at typical scaling / window resize; tests do not prove a screenshot visually.

M2.14 Material Icons — FINAL exact-SHA CI checkpoint (2026-10-15)

Copy link
Copy Markdown
Owner Author

M2.14 Engineering Browser response to physical screenshots — Draft PR #577, head 4be7b51b9040a7a5f1d8ecaa1d90bbc1a3b9d081, based on exact #575 head 7a761feecbda. User's ZIV/BCUGE screenshot shows raw FC names (phsA [MX], phsA [CF], phsA [DC]) as peer rows and giant A/PhV concatenated value despite canonical leaf availability. This is a Browser projection, not a protocol decoding or SSOT reset issue.

#577 groups duplicate DO declarations by exact IEC DO reference+name only, preserves original FC-qualified attributes and ambiguous CDC metadata, renders one lazy phase node with MX/CF/DC children, and bounds DO three-phase preview while keeping neutral/net/res accessible upon expansion. Regression tests added. Windows CI is currently running, physical GUI acceptance pending. We did not touch UI icon files, WPF main layout, pinned engine, canonical ledger, RCB/GI, or SSOT. #576 remains an unrelated sibling UI branch and should not be overwritten. Coordinate any further IED Browser model projection changes through #577 to avoid parallel source edits.

Copy link
Copy Markdown
Owner Author

M2.14 GUI hierarchy correction CI gate — exact-SHA PASS. Draft PR #577 head 4be7b51b9040a7a5f1d8ecaa1d90bbc1a3b9d081, based on #575 7a761feecbda, has Build ARSAS #38691118674 Success: 1,988/1,988 ARSAS, 19/19 pinned engine, 9/9 native CTest, 6/6 packaged managed tests; sealed portable ARSAS-win-x64-portable-single-exe artifact 11952551019, matching exact HEAD and unexpired. Nine of ten workflow runs were confirmed success when last checked; Field Capture still running.

Implementation is Browser-only: duplicate DO declarations coalesced by exact reference/name (no cross-IED or FC borrowing), FC types stay separated under one structured phsA node, and the top-level A/PhV preview stops dumping neutral/net/res into one line. Canonical live values and #570 no-angle-on-scalar behavior unchanged. The paired angle still requires matching source/time/association. Please base subsequent GUI hierarchy work on #577 instead of modifying ancestor branch; Thread A owns CF/unit and communication SSOT. Physical ZIV/BCUGE acceptance and DataSet multi-leaf Not read issue remain open.

Copy link
Copy Markdown
Owner Author

UI icon delivery checkpoint — 2026-10-15 (handoff / safe close of this thread)

This branch has not been deployed

No deployments
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.

1 participant