Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquicksplitview_p.h
Go to the documentation of this file.
1// Copyright (C) 2018 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// Qt-Security score:significant reason:default
4
5#ifndef QQUICKSPLITVIEW_P_H
6#define QQUICKSPLITVIEW_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtQuickTemplates2/private/qquickcontainer_p.h>
20#include <QtQml/qqmllist.h>
21
23
24QT_BEGIN_NAMESPACE
25
26class QQuickSplitViewPrivate;
27class QQuickSplitViewAttached;
29class QQuickSplitHandleAttached;
31class QQmlComponent;
32
33class Q_QUICKTEMPLATES2_EXPORT QQuickSplitView : public QQuickContainer
34{
35 Q_OBJECT
36 Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
37 Q_PROPERTY(bool resizing READ isResizing NOTIFY resizingChanged)
38 Q_PROPERTY(QQmlComponent *handle READ handle WRITE setHandle NOTIFY handleChanged FINAL)
39 QML_NAMED_ELEMENT(SplitView)
40 QML_ATTACHED(QQuickSplitViewAttached)
41 QML_ADDED_IN_VERSION(2, 13)
42
43public:
44 explicit QQuickSplitView(QQuickItem *parent = nullptr);
45 ~QQuickSplitView() override;
46
47 Qt::Orientation orientation() const;
48 void setOrientation(Qt::Orientation orientation);
49
50 bool isResizing() const;
51
52 QQmlComponent *handle();
53 void setHandle(QQmlComponent *handle);
54
55 bool isContent(QQuickItem *item) const override;
56
57 static QQuickSplitViewAttached *qmlAttachedProperties(QObject *object);
58
59 // Based on the same code in QMainWindow.
60 enum VersionMarkers {
61 VersionMarker = 0xff
62 };
63 Q_INVOKABLE QVariant saveState();
64 Q_INVOKABLE bool restoreState(const QVariant &state);
65
66Q_SIGNALS:
67 void orientationChanged();
68 void resizingChanged();
69 void handleChanged();
70
71protected:
72 QQuickSplitView(QQuickSplitViewPrivate &dd, QQuickItem *parent);
73
74 void componentComplete() override;
75 void hoverMoveEvent(QHoverEvent *event) override;
76 void hoverLeaveEvent(QHoverEvent *event) override;
77 bool childMouseEventFilter(QQuickItem *item, QEvent *event) override;
78 void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
79
80 void itemAdded(int index, QQuickItem *item) override;
81 void itemMoved(int index, QQuickItem *item) override;
82 void itemRemoved(int index, QQuickItem *item) override;
83
84#if QT_CONFIG(accessibility)
85 QAccessible::Role accessibleRole() const override;
86#endif
87
88private:
89 Q_DISABLE_COPY(QQuickSplitView)
90 Q_DECLARE_PRIVATE(QQuickSplitView)
91};
92
93class Q_QUICKTEMPLATES2_EXPORT QQuickSplitViewAttached : public QObject
94{
95 Q_OBJECT
96 Q_PROPERTY(QQuickSplitView *view READ view NOTIFY viewChanged FINAL)
97 Q_PROPERTY(qreal minimumWidth READ minimumWidth WRITE setMinimumWidth
98 RESET resetMinimumWidth NOTIFY minimumWidthChanged FINAL)
99 Q_PROPERTY(qreal minimumHeight READ minimumHeight WRITE setMinimumHeight
100 RESET resetMinimumHeight NOTIFY minimumHeightChanged FINAL)
101 Q_PROPERTY(qreal preferredWidth READ preferredWidth WRITE setPreferredWidth
102 RESET resetPreferredWidth NOTIFY preferredWidthChanged FINAL)
103 Q_PROPERTY(qreal preferredHeight READ preferredHeight WRITE setPreferredHeight
104 RESET resetPreferredHeight NOTIFY preferredHeightChanged FINAL)
105 Q_PROPERTY(qreal maximumWidth READ maximumWidth WRITE setMaximumWidth
106 RESET resetMaximumWidth NOTIFY maximumWidthChanged FINAL)
107 Q_PROPERTY(qreal maximumHeight READ maximumHeight WRITE setMaximumHeight
108 RESET resetMaximumHeight NOTIFY maximumHeightChanged FINAL)
109 Q_PROPERTY(bool fillHeight READ fillHeight WRITE setFillHeight NOTIFY fillHeightChanged FINAL)
110 Q_PROPERTY(bool fillWidth READ fillWidth WRITE setFillWidth NOTIFY fillWidthChanged FINAL)
111
112public:
113 explicit QQuickSplitViewAttached(QObject *parent = nullptr);
114
115 QQuickSplitView *view() const;
116
117 qreal minimumWidth() const;
118 void setMinimumWidth(qreal width);
119 void resetMinimumWidth();
120
121 qreal minimumHeight() const;
122 void setMinimumHeight(qreal height);
123 void resetMinimumHeight();
124
125 qreal preferredWidth() const;
126 void setPreferredWidth(qreal width);
127 void resetPreferredWidth();
128
129 qreal preferredHeight() const;
130 void setPreferredHeight(qreal height);
131 void resetPreferredHeight();
132
133 qreal maximumWidth() const;
134 void setMaximumWidth(qreal width);
135 void resetMaximumWidth();
136
137 qreal maximumHeight() const;
138 void setMaximumHeight(qreal height);
139 void resetMaximumHeight();
140
141 bool fillWidth() const;
142 void setFillWidth(bool fill);
143
144 bool fillHeight() const;
145 void setFillHeight(bool fill);
146
147Q_SIGNALS:
148 void viewChanged();
149 void minimumWidthChanged();
150 void minimumHeightChanged();
151 void preferredWidthChanged();
152 void preferredHeightChanged();
153 void maximumWidthChanged();
154 void maximumHeightChanged();
155 void fillWidthChanged();
156 void fillHeightChanged();
157
158private:
159 Q_DISABLE_COPY(QQuickSplitViewAttached)
160 Q_DECLARE_PRIVATE(QQuickSplitViewAttached)
161};
162
163class Q_QUICKTEMPLATES2_EXPORT QQuickSplitHandleAttached : public QObject
164{
165 Q_OBJECT
166 Q_PROPERTY(bool hovered READ isHovered NOTIFY hoveredChanged FINAL)
167 Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged FINAL)
168 QML_NAMED_ELEMENT(SplitHandle)
169 QML_ATTACHED(QQuickSplitHandleAttached)
170 QML_UNCREATABLE("")
171 QML_ADDED_IN_VERSION(2, 13)
172
173public:
174 explicit QQuickSplitHandleAttached(QObject *parent = nullptr);
175
176 bool isHovered() const;
177 bool isPressed() const;
178
179 static QQuickSplitHandleAttached *qmlAttachedProperties(QObject *object);
180
181Q_SIGNALS:
182 void hoveredChanged();
183 void pressedChanged();
184
185private:
186 Q_DISABLE_COPY(QQuickSplitHandleAttached)
187 Q_DECLARE_PRIVATE(QQuickSplitHandleAttached)
188};
189
190QT_END_NAMESPACE
191
192#endif // QQUICKSPLITVIEW_P_H
static const QQuickSplitHandleAttachedPrivate * get(const QQuickSplitHandleAttached *attached)
void setView(QQuickSplitView *newView)
static const QQuickSplitViewAttachedPrivate * get(const QQuickSplitViewAttached *attached)
QT_REQUIRE_CONFIG(quicktemplates2_container)
qreal effectiveMaximumHeight(const QQuickSplitViewAttachedPrivate *attachedPrivate)
qreal effectivePreferredHeight(const QQuickSplitViewAttachedPrivate *attachedPrivate, const QQuickItemPrivate *itemPrivate)
qreal effectivePreferredWidth(const QQuickSplitViewAttachedPrivate *attachedPrivate, const QQuickItemPrivate *itemPrivate)
qreal effectiveMinimumWidth(const QQuickSplitViewAttachedPrivate *attachedPrivate)
qreal effectiveMaximumWidth(const QQuickSplitViewAttachedPrivate *attachedPrivate)
qreal effectiveMinimumHeight(const QQuickSplitViewAttachedPrivate *attachedPrivate)