25class QQStyleKitLayoutItem :
public QObject
28 Q_PROPERTY(QQuickItem *item READ item WRITE setItem NOTIFY itemChanged FINAL)
29 Q_PROPERTY(qreal x READ x NOTIFY xChanged FINAL)
30 Q_PROPERTY(qreal y READ y NOTIFY yChanged FINAL)
31 Q_PROPERTY(qreal width READ width NOTIFY widthChanged FINAL)
32 Q_PROPERTY(qreal height READ height NOTIFY heightChanged FINAL)
33 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged FINAL)
34 Q_PROPERTY(QMarginsF margins READ margins WRITE setMargins NOTIFY marginsChanged FINAL)
35 Q_PROPERTY(
bool fillWidth READ fillWidth WRITE setFillWidth NOTIFY fillWidthChanged FINAL)
36 Q_PROPERTY(
bool fillHeight READ fillHeight WRITE setFillHeight NOTIFY fillHeightChanged FINAL)
37 QML_NAMED_ELEMENT(StyleKitLayoutItem)
40 QQStyleKitLayoutItem(QObject *parent =
nullptr);
41 QQuickItem *item()
const;
42 void setItem(QQuickItem *item);
49 void setWidth(qreal width);
51 void setHeight(qreal height);
53 Qt::Alignment alignment()
const;
54 void setAlignment(Qt::Alignment alignment);
56 QMarginsF margins()
const;
57 void setMargins(
const QMarginsF &margins);
59 bool fillWidth()
const;
60 void setFillWidth(
bool fill);
62 bool fillHeight()
const;
63 void setFillHeight(
bool fill);
71 void alignmentChanged();
72 void marginsChanged();
73 void fillWidthChanged();
74 void fillHeightChanged();
77 QPointer<QQuickItem> m_item;
78 Qt::Alignment m_alignment = Qt::AlignLeft | Qt::AlignVCenter;
80 bool m_fillWidth =
false;
81 bool m_fillHeight =
false;
91 Q_PROPERTY(QQuickItem *container READ container WRITE setContainer NOTIFY containerChanged FINAL)
145 void scheduleUpdate();
147 static void layoutItem_append(QQmlListProperty<QQStyleKitLayoutItem> *list, QQStyleKitLayoutItem *item);
148 static qsizetype layoutItem_count(QQmlListProperty<QQStyleKitLayoutItem> *list);
149 static QQStyleKitLayoutItem *layoutItem_at(QQmlListProperty<QQStyleKitLayoutItem> *list, qsizetype index);
150 static void layoutItem_clear(QQmlListProperty<QQStyleKitLayoutItem> *list);
152 QPointer<QQuickItem> m_container;
153 QList<QQStyleKitLayoutItem *> m_layoutItems;
154 QMarginsF m_contentMargins;
157 qreal m_implicitWidth = 0;;
158 qreal m_implicitHeight = 0;
162 bool m_updatingLayout: 1;
164 QTimer m_updateTimer;