5#ifndef QGRAPHICSLAYOUTITEM_P_H
6#define QGRAPHICSLAYOUTITEM_P_H
19#include <QtWidgets/private/qtwidgetsglobal_p.h>
20#include <QtCore/QSizeF>
21#include <QtWidgets/QSizePolicy>
23QT_REQUIRE_CONFIG(graphicsview);
27class QGraphicsLayoutItem;
30 Q_DECLARE_PUBLIC(QGraphicsLayoutItem)
32 virtual ~QGraphicsLayoutItemPrivate();
33 QGraphicsLayoutItemPrivate(QGraphicsLayoutItem *parent,
bool isLayout);
34 static QGraphicsLayoutItemPrivate *get(QGraphicsLayoutItem *q) {
return q->d_func();}
35 static const QGraphicsLayoutItemPrivate *get(
const QGraphicsLayoutItem *q) {
return q->d_func();}
38 QSizeF *effectiveSizeHints(
const QSizeF &constraint)
const;
39 QGraphicsItem *parentItem()
const;
40 void ensureUserSizeHints();
41 void setSize(Qt::SizeHint which,
const QSizeF &size);
42 enum SizeComponent { Width, Height };
43 void setSizeComponent(Qt::SizeHint which, SizeComponent component, qreal value);
45 bool hasHeightForWidth()
const;
46 bool hasWidthForHeight()
const;
48 QSizePolicy sizePolicy;
49 QGraphicsLayoutItem *parent;
51 QSizeF *userSizeHints;
52 mutable QSizeF cachedSizeHints[Qt::NSizeHints];
53 mutable QSizeF cachedConstraint;
54 mutable QSizeF cachedSizeHintsWithConstraints[Qt::NSizeHints];
56 mutable quint32 sizeHintCacheDirty : 1;
57 mutable quint32 sizeHintWithConstraintCacheDirty : 1;
59 quint32 ownedByLayout : 1;
61 QGraphicsLayoutItem *q_ptr;
63 QGraphicsItem *graphicsItem;
void setSizePolicy(QSizePolicy::Policy policy)
~QGraphicsAnchorPrivate()
QSizePolicy::Policy sizePolicy
static QGraphicsAnchorPrivate * get(QGraphicsAnchor *q)
QGraphicsAnchorLayoutPrivate * layoutPrivate
void setSpacing(qreal value)
The QGraphicsLayout class provides the base class for all layouts in Graphics View.
void setDefaultSpacing(Qt::Orientation o, qreal spacing)
bool operator==(const QLayoutStyleInfo &other) const
bool operator!=(const QLayoutStyleInfo &other) const
qreal perItemSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation) const
qreal defaultSpacing(Qt::Orientation o) const
QLayoutStyleInfo(QStyle *style, QWidget *widget)
QSet< AnchorData * > negatives
QSet< AnchorData * > positives
QSimplexConstraint * constraint(const GraphPath &path) const
Combined button and popup list for selecting options.
QT_REQUIRE_CONFIG(animation)
Q_DECLARE_TYPEINFO(GraphPath, Q_RELOCATABLE_TYPE)
QT_REQUIRE_CONFIG(graphicsview)
Q_DECLARE_INTERFACE(QNetworkAccessBackendFactory, QNetworkAccessBackendFactory_iid)
virtual void updateChildrenSizes()
void refreshSizeHints(const QLayoutStyleInfo *styleInfo=nullptr)
QGraphicsLayoutItem * item
QGraphicsAnchor * graphicsAnchor
AnchorVertexPair(AnchorVertex *v1, AnchorVertex *v2, AnchorData *data)
AnchorData * m_removedAnchor
QList< AnchorData * > m_secondAnchors
QList< AnchorData * > m_firstAnchors
AnchorVertex(QGraphicsLayoutItem *item, Qt::AnchorPoint edge)
virtual ~AnchorVertex()=default
QGraphicsLayoutItem * m_item
virtual void updateChildrenSizes() override
ParallelAnchorData(AnchorData *first, AnchorData *second)
QList< QSimplexConstraint * > m_secondConstraints
bool calculateSizeHints()
QList< QSimplexConstraint * > m_firstConstraints
bool secondForward() const
virtual void updateChildrenSizes() override
const QList< AnchorData * > m_edges
SequentialAnchorData(const QList< AnchorVertex * > &vertices, const QList< AnchorData * > &edges)
void calculateSizeHints()