# Extract the full representation into a dedicated component · lucenx/codexbar-plasma

[View on GitCafe](https://git.cafe/lucenx/codexbar-plasma/commit/450b6f7d7694dc292aac36fe6ad732c21f6bdf06)

Repository: [lucenx/codexbar-plasma](https://git.cafe/lucenx/codexbar-plasma)

Visibility: public

Requested revision: 450b6f7d7694dc292aac36fe6ad732c21f6bdf06

Requested commit: 450b6f7d7694dc292aac36fe6ad732c21f6bdf06

Commit: 450b6f7d7694dc292aac36fe6ad732c21f6bdf06

Tree: 478e0b1bd5367eb6a1848ee638446ff28bc8cbbe

Author: Simone

Committer: Simone

## Message

```
Extract the full representation into a dedicated component

main.qml was 263 KB across 6568 lines, with the fullRepresentation inline
from `fullRepresentation: Item {` to the end of the file (~1500 lines). Move
it into contents/ui/components/FullRepresentation.qml, mirroring the existing
CompactRepresentation pattern instead of inventing a new one.

The extracted component receives an explicit `applet` property carrying the
already-normalized data and helpers; CLI commands, parsing, normalization,
nonce and process lifecycle stay in main.qml. Scoped references moved with the
code: `root.*` and previously-unqualified PlasmoidItem properties are now
reached through `applet.*`, child components take `applet: fullRoot.applet`,
and every Repeater/view delegate declares `required property var modelData`.
No user-facing strings change; the .pot only relocates file references and
keeps the same msgid set.

Static assertions follow the code across files (Surface/require_in_surface),
so most checks needed no rewrites. The one per-file contract in
test_security_regressions.sh now points at FullRepresentation.qml for the
icon `fallback: "view-statistics"` contract, and the UI regression check
reads the fullRepresentation body through the surface `fullRoot` block.

Verified with `make check` (exit 0), `./install.sh` plus a clean plasmashell
journal, and a clean `plasmawindowed` load.

```

## Parents

- [0a8d19a07f5c19e25010820ad70725784ad9d0c7](https://git.cafe/lucenx/codexbar-plasma/commit/0a8d19a07f5c19e25010820ad70725784ad9d0c7?format=markdown)

[Source at this commit](https://git.cafe/lucenx/codexbar-plasma/tree/450b6f7d7694dc292aac36fe6ad732c21f6bdf06?format=markdown)
