Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

Attached property reuse

This warning category is spelled [attached-property-reuse] by qmllint.

Using attached type already initialized in a parent scope

What happened?

You initialized a propagating attached type multiple times.

Note: This mostly happens for attached types that inherit from QQuickAttachedPropertyPropagator.

Why is this bad?

Propagating attached objects consume memory for each instantiation but only need to be initialized once.

Example

import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Material // contains the Material attached type

T.ToolBar {
    id: control

    // first instantiation of Material's attached property
    property color c: Material.toolBarColor

    background: Rectangle {
         // second instantiation of Material's attached property, wrong!
        color: Material.toolBarColor
    }
}

To fix this warning, query the attached type from the parent:

import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Material // contains the Material attached type

T.ToolBar {
    id: control

    // first instantiation of Material's attached property
    property color c: Material.toolBarColor

    background: Rectangle {
        // use control's attached property, correct!
        color: control.Material.toolBarColor
    }
}
Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded