Verification: read from the QML on master 05222af; not measured with a host app.
#810 makes DynamicForm's chrome replaceable through SlotRegistry.byChrome. The other shipped views still hard-code theirs, so an app rendering only through its own UI kit cannot use them:
Proposal: the same byChrome(role, …) mechanism with roles per view (collectionRow, collectionAction, confirmDialog, editorDialog, wizardStep, wizardNav, …), members assigned only when declared, built-ins unchanged when nothing is registered.
Closes when each view can be drawn with no built-in Label/Button/Dialog visible.
Verification: read from the QML on master 05222af; not measured with a host app.
#810 makes
DynamicForm's chrome replaceable throughSlotRegistry.byChrome. The other shipped views still hard-code theirs, so an app rendering only through its own UI kit cannot use them:CollectionView.qml— theFrame, the "Are you sure?" confirmDialog, the editorDialog, rowLabels and the per-row / collection actionButtons.WizardView.qml— the step-titleLabel, Back / NextButtons and step counterLabel.DateTimePicker.qml— the calendar-popupButton, month navigation, day grid and timeLabels. A host can already avoid it by overriding date-time fields with a slot, but only per field / per JSON type (forms(qml): SlotRegistry has no tier by renderer kind, so a host cannot restyle every Quantity / Choice / enum / date-time control at once #812).Proposal: the same
byChrome(role, …)mechanism with roles per view (collectionRow,collectionAction,confirmDialog,editorDialog,wizardStep,wizardNav, …), members assigned only when declared, built-ins unchanged when nothing is registered.Closes when each view can be drawn with no built-in
Label/Button/Dialogvisible.