6#include "qml_material/export.hpp"
10class QML_MATERIAL_API ItemHolder :
public QQuickItem {
13 Q_PROPERTY(QQuickItem* item READ item WRITE setItem NOTIFY itemChanged FINAL)
14 Q_PROPERTY(qreal itemImplicitWidth READ itemImplicitWidth NOTIFY itemImplicitSizeChanged FINAL)
16 qreal itemImplicitHeight READ itemImplicitHeight NOTIFY itemImplicitSizeChanged FINAL)
18 explicit ItemHolder(QQuickItem* parent =
nullptr): QQuickItem(parent) {}
19 ~ItemHolder()
override;
20 QQuickItem* item()
const {
return m_item; }
21 void setItem(QQuickItem*);
22 qreal itemImplicitWidth()
const;
23 qreal itemImplicitHeight()
const;
24 Q_SIGNAL
void itemChanged();
25 Q_SIGNAL
void itemImplicitSizeChanged();
28 void classBegin()
override;
31 QPointer<QQuickItem> m_item;
32 QQuickItem* m_identity =
nullptr;
33 QList<QMetaObject::Connection> m_connections;
34 std::function<void()> m_releaseBinding;
35 quint64 m_revision = 0;