5#ifndef QGRAPHICSLAYOUT_P_H
6#define QGRAPHICSLAYOUT_P_H
19#include <QtWidgets/private/qtwidgetsglobal_p.h>
23#include <QtWidgets/qstyle.h>
24#include <QtWidgets/qwidget.h>
25#include <QtWidgets/qstyleoption.h>
31class QGraphicsLayoutItem;
35inline bool qt_graphicsLayoutDebug()
37 static int checked_env = -1;
38 if (checked_env == -1)
39 checked_env = !!qEnvironmentVariableIntValue(
"QT_GRAPHICSLAYOUT_DEBUG");
54 m_styleOption.initFrom(widget);
55 m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing, &m_styleOption, widget);
56 m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing, &m_styleOption, widget);
59 inline void invalidate() { m_valid =
false; m_style =
nullptr; m_widget =
nullptr; }
65 {
return m_style == other.m_style && m_widget == other.m_widget; }
67 {
return !(*
this == other); }
71 m_defaultSpacing[
int(o) - 1] = spacing;
75 return m_defaultSpacing[
int(o) - 1];
79 QSizePolicy::ControlType control2,
80 Qt::Orientation orientation)
const
83 return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget());
89 QStyleOption m_styleOption;
90 qreal m_defaultSpacing[2];
95 Q_DECLARE_PUBLIC(QGraphicsLayout)
98 QGraphicsLayoutPrivate() : QGraphicsLayoutItemPrivate(
nullptr,
true), left(-1.0), top(-1.0), right(-1.0), bottom(-1.0),
101 void reparentChildItems(QGraphicsItem *newParent);
102 void getMargin(qreal *result, qreal userMargin, QStyle::PixelMetric pm)
const;
103 Qt::LayoutDirection visualDirection()
const;
105 void addChildLayoutItem(QGraphicsLayoutItem *item);
106 void activateRecursive(QGraphicsLayoutItem *item);
108 qreal left, top, right, bottom;
void setSizePolicy(QSizePolicy::Policy policy)
~QGraphicsAnchorPrivate()
QSizePolicy::Policy sizePolicy
static QGraphicsAnchorPrivate * get(QGraphicsAnchor *q)
QGraphicsAnchorLayoutPrivate * layoutPrivate
void setSpacing(qreal value)
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
QT_REQUIRE_CONFIG(animation)
Q_DECLARE_TYPEINFO(GraphPath, Q_RELOCATABLE_TYPE)
QT_REQUIRE_CONFIG(graphicsview)
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()