Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquicklinearlayout_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKLINEARLAYOUT_P_H
5#define QQUICKLINEARLAYOUT_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQuickLayouts/private/qquicklayoutglobal_p.h>
19#include "qquicklayout_p.h"
21
23
24/**********************************
25 **
26 ** QQuickGridLayoutBase
27 **
28 **/
30
31class Q_QUICKLAYOUTS_EXPORT QQuickGridLayoutBase : public QQuickLayout
32{
34
35 Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection
36 NOTIFY layoutDirectionChanged REVISION(1, 1))
39
40public:
41
43
45 Qt::Orientation orientation,
46 QQuickItem *parent = nullptr);
47
49 void componentComplete() override;
50 void invalidate(QQuickItem *childItem = nullptr) override;
51 Qt::Orientation orientation() const;
52 void setOrientation(Qt::Orientation orientation);
53 QSizeF sizeHint(Qt::SizeHint whichSizeHint) const override;
54 Qt::LayoutDirection layoutDirection() const;
55 void setLayoutDirection(Qt::LayoutDirection dir);
56 Qt::LayoutDirection effectiveLayoutDirection() const;
57 void setAlignment(QQuickItem *item, Qt::Alignment align) override;
58 void setStretchFactor(QQuickItem *item, int stretchFactor, Qt::Orientation orient) override;
59
60 /* QQuickItemChangeListener */
61 void itemDestroyed(QQuickItem *item) override;
62 void itemVisibilityChanged(QQuickItem *item) override;
63
64protected:
65 void updateLayoutItems() override;
66 QQuickItem *itemAt(int index) const override;
67 int itemCount() const override;
68
69 void rearrange(const QSizeF &size) override;
70 virtual void insertLayoutItems() {}
71
73 Q_REVISION(1, 1) void layoutDirectionChanged();
74
76 void removeGridItem(QGridLayoutItem *gridItem);
77 Q_DECLARE_PRIVATE(QQuickGridLayoutBase)
78};
79
81
83{
84 Q_DECLARE_PUBLIC(QQuickGridLayoutBase)
85
86public:
87 QQuickGridLayoutBasePrivate() : m_recurRearrangeCounter(0)
88 , m_rearranging(false)
89 , m_layoutDirection(Qt::LeftToRight)
90 {}
91
92 void mirrorChange() override
93 {
95 q->invalidate();
96 }
97
101 unsigned m_rearranging : 1;
102 QVector<QQuickItem *> m_invalidateAfterRearrange;
104
106};
107
108/**********************************
109 **
110 ** QQuickGridLayout
111 **
112 **/
114class Q_QUICKLAYOUTS_EXPORT QQuickGridLayout : public QQuickGridLayoutBase
115{
117
118 Q_PROPERTY(qreal columnSpacing READ columnSpacing WRITE setColumnSpacing NOTIFY columnSpacingChanged)
119 Q_PROPERTY(qreal rowSpacing READ rowSpacing WRITE setRowSpacing NOTIFY rowSpacingChanged)
120 Q_PROPERTY(int columns READ columns WRITE setColumns NOTIFY columnsChanged)
121 Q_PROPERTY(int rows READ rows WRITE setRows NOTIFY rowsChanged)
122 Q_PROPERTY(Flow flow READ flow WRITE setFlow NOTIFY flowChanged)
123 Q_PROPERTY(bool uniformCellWidths READ uniformCellWidths WRITE setUniformCellWidths
124 NOTIFY uniformCellWidthsChanged REVISION(6, 6) FINAL)
125 Q_PROPERTY(bool uniformCellHeights READ uniformCellHeights WRITE setUniformCellHeights
126 NOTIFY uniformCellHeightsChanged REVISION(6, 6) FINAL)
127
128 QML_NAMED_ELEMENT(GridLayout)
130public:
131 explicit QQuickGridLayout(QQuickItem *parent = nullptr);
132 qreal columnSpacing() const;
133 void setColumnSpacing(qreal spacing);
134 qreal rowSpacing() const;
135 void setRowSpacing(qreal spacing);
136
137 int columns() const;
138 void setColumns(int columns);
139 int rows() const;
140 void setRows(int rows);
141
142 enum Flow { LeftToRight, TopToBottom };
143 Q_ENUM(Flow)
144 Flow flow() const;
145 void setFlow(Flow flow);
146
147 bool uniformCellWidths() const;
148 void setUniformCellWidths(bool uniformCellWidths);
149 bool uniformCellHeights() const;
150 void setUniformCellHeights(bool uniformCellHeights);
151
152 void insertLayoutItems() override;
153
157
160
162
163 Q_REVISION(6, 6) void uniformCellWidthsChanged();
164 Q_REVISION(6, 6) void uniformCellHeightsChanged();
165private:
166 Q_DECLARE_PRIVATE(QQuickGridLayout)
167};
168
170{
171 Q_DECLARE_PUBLIC(QQuickGridLayout)
172public:
173 QQuickGridLayoutPrivate(): columns(-1), rows(-1), flow(QQuickGridLayout::LeftToRight) {}
175 int rows;
177};
178
179
180/**********************************
181 **
182 ** QQuickLinearLayout
183 **
184 **/
186class Q_QUICKLAYOUTS_EXPORT QQuickLinearLayout : public QQuickGridLayoutBase
187{
190 Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged)
191 Q_PROPERTY(bool uniformCellSizes READ uniformCellSizes WRITE setUniformCellSizes
192 NOTIFY uniformCellSizesChanged REVISION(6, 6) FINAL)
193public:
195 QQuickItem *parent = nullptr);
196 void insertLayoutItem(QQuickItem *item);
197 qreal spacing() const;
198 void setSpacing(qreal spacing);
199 bool uniformCellSizes() const;
200 void setUniformCellSizes(bool uniformCellSizes);
201
202 void insertLayoutItems() override;
203
206 Q_REVISION(6, 6) void uniformCellSizesChanged();
207private:
208 Q_DECLARE_PRIVATE(QQuickLinearLayout)
209};
210
217
218
219/**********************************
220 **
221 ** QQuickRowLayout
222 **
223 **/
224class Q_QUICKLAYOUTS_EXPORT QQuickRowLayout : public QQuickLinearLayout
225{
227 QML_NAMED_ELEMENT(RowLayout)
229
230public:
231 explicit QQuickRowLayout(QQuickItem *parent = nullptr)
232 : QQuickLinearLayout(Qt::Horizontal, parent) {}
233};
234
235
236/**********************************
237 **
238 ** QQuickColumnLayout
239 **
240 **/
241class Q_QUICKLAYOUTS_EXPORT QQuickColumnLayout : public QQuickLinearLayout
242{
244 QML_NAMED_ELEMENT(ColumnLayout)
246
247public:
248 explicit QQuickColumnLayout(QQuickItem *parent = nullptr)
249 : QQuickLinearLayout(Qt::Vertical, parent) {}
250};
251
253
254#endif // QQUICKLINEARLAYOUT_P_H
QQuickColumnLayout(QQuickItem *parent=nullptr)
QVector< QQuickItem * > m_invalidateAfterRearrange
QQuickGridLayoutEngine engine
Qt::LayoutDirection m_layoutDirection
QQuickLayoutStyleInfo * styleInfo
Q_REVISION(1, 1) void layoutDirectionChanged()
QQuickGridLayout::Flow flow
void columnSpacingChanged()
Q_REVISION(6, 6) void uniformCellWidthsChanged()
void rowSpacingChanged()
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
QQuickRowLayout(QQuickItem *parent=nullptr)
\inmodule QtCore
Definition qsize.h:208
void spacingChanged()
qreal spacing
Combined button and popup list for selecting options.
Definition qcompare.h:63
LayoutDirection
Orientation
Definition qnamespace.h:98
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLuint index
[2]
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
#define QML_ANONYMOUS
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define Q_SIGNALS
double qreal
Definition qtypes.h:187
#define explicit
label setAlignment(Qt::AlignLeft|Qt::AlignTop)
[0]
QString dir
[11]
QGraphicsItem * item