![]() |
Qt 6.x
The Qt SDK
|
#include <qquicksplitview_p_p.h>
Classes | |
struct | EffectiveSizeData |
struct | LayoutData |
Additional Inherited Members | |
![]() | |
enum class | UnhideVisibility { Show , Hide } |
![]() | |
enum | ChangeType { Geometry = 0x01 , SiblingOrder = 0x02 , Visibility = 0x04 , Opacity = 0x08 , Destroyed = 0x10 , Parent = 0x20 , Children = 0x40 , Rotation = 0x80 , ImplicitWidth = 0x100 , ImplicitHeight = 0x200 , Enabled = 0x400 , Focus = 0x800 , AllChanges = 0xFFFFFFFF } |
enum | ExtraDataTag { NoTag = 0x1 , LeftMouseButtonAccepted = 0x2 } |
enum | DirtyType { TransformOrigin = 0x00000001 , Transform = 0x00000002 , BasicTransform = 0x00000004 , Position = 0x00000008 , Size = 0x00000010 , ZValue = 0x00000020 , Content = 0x00000040 , Smooth = 0x00000080 , OpacityValue = 0x00000100 , ChildrenChanged = 0x00000200 , ChildrenStackingChanged = 0x00000400 , ParentChanged = 0x00000800 , Clip = 0x00001000 , Window = 0x00002000 , EffectReference = 0x00008000 , Visible = 0x00010000 , HideReference = 0x00020000 , Antialiasing = 0x00040000 , TransformUpdateMask , ComplexTransformUpdateMask = Transform | Window , ContentUpdateMask = Size | Content | Smooth | Window | Antialiasing , ChildrenUpdateMask = ChildrenChanged | ChildrenStackingChanged | EffectReference | Window } |
![]() | |
typedef void(* | StaticMetaCallFunction) (QObject *, QMetaObject::Call, int, void **) |
using | ConnectionDataPointer = QExplicitlySharedDataPointer< ConnectionData > |
![]() | |
static const ChangeTypes | ImplicitSizeChanges = QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight | QQuickItemPrivate::Destroyed |
Abstract base type providing functionality common to all controls. | |
![]() | |
void | setCurrentColorGroup () |
Definition at line 26 of file qquicksplitview_p_p.h.
qreal QQuickSplitViewPrivate::accumulatedSize | ( | int | firstIndex, |
int | lastIndex | ||
) | const |
Definition at line 820 of file qquicksplitview.cpp.
References QList< T >::at(), QQuickContainerPrivate::contentModel, QQuickSplitViewAttachedPrivate::get(), QQuickItem::height, i, isHorizontal(), QGraphicsItem::isVisible(), QQuickItem::isVisible(), item, m_fillIndex, m_handleItems, QQuickSplitViewAttachedPrivate::m_isMinimumHeightSet, QQuickSplitViewAttachedPrivate::m_isMinimumWidthSet, QQuickSplitViewAttachedPrivate::m_minimumHeight, QQuickSplitViewAttachedPrivate::m_minimumWidth, QQmlObjectModel::object, qobject_cast< QQuickItem * >(), and QQuickItem::width.
Referenced by layoutResizeSplitItems().
void QQuickSplitViewPrivate::createHandleItem | ( | int | index | ) |
Definition at line 772 of file qquicksplitview.cpp.
References QQmlComponent::beginCreate(), QQmlComponent::completeCreate(), QQuickContainerPrivate::contentModel, context, QQmlObjectModel::count(), QQmlComponent::creationContext(), QList< T >::insert(), Qt::LeftButton, m_handle, m_handleItems, qCDebug, qmlContext(), qobject_cast< QQuickItem * >(), resizeHandle(), QQuickItem::setAcceptedMouseButtons(), QQuickItem::setKeepMouseGrab(), QObject::setParent(), and QQuickItem::setParentItem().
Referenced by createHandles().
void QQuickSplitViewPrivate::createHandles | ( | ) |
Definition at line 757 of file qquicksplitview.cpp.
References QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), createHandleItem(), i, m_handle, m_handleItems, Q_ASSERT, qCDebug, and QList< T >::reserve().
void QQuickSplitViewPrivate::destroyHandles | ( | ) |
Definition at line 916 of file qquicksplitview.cpp.
References QList< T >::clear(), m_handleItems, qCDebug, qDeleteAll(), and QList< T >::size().
QQuickSplitViewPrivate::EffectiveSizeData QQuickSplitViewPrivate::effectiveSizeData | ( | const QQuickItemPrivate * | itemPrivate, |
const QQuickSplitViewAttached * | attached | ||
) | const |
Definition at line 893 of file qquicksplitview.cpp.
References QQuickItemPrivate::data(), effectiveMaximumHeight(), effectiveMaximumWidth(), effectiveMinimumHeight(), effectiveMinimumWidth(), effectivePreferredHeight(), effectivePreferredWidth(), and QQuickSplitViewAttachedPrivate::get().
Referenced by layoutPositionItems(), layoutResizeFillItem(), layoutResizeSplitItems(), and limitAndApplySizes().
|
static |
Definition at line 1156 of file qquicksplitview.cpp.
Referenced by QQuickSplitViewAttachedPrivate::requestLayoutView(), QQuickSplitViewAttached::setFillHeight(), QQuickSplitViewAttached::setFillWidth(), QQuickSplitViewAttached::setPreferredHeight(), and QQuickSplitViewAttached::setPreferredWidth().
|
overridevirtual |
Reimplemented from QQuickControlPrivate.
Definition at line 1020 of file qquicksplitview.cpp.
References QQuickControlPrivate::getContentItem(), and item.
int QQuickSplitViewPrivate::handleIndexForSplitIndex | ( | int | splitIndex | ) | const |
Definition at line 907 of file qquicksplitview.cpp.
References QQuickContainerPrivate::contentModel, and QQmlObjectModel::count().
Referenced by itemVisibilityChanged().
Reimplemented from QQuickControlPrivate.
Definition at line 1081 of file qquicksplitview.cpp.
References QQuickControlPrivate::handleMove(), m_mousePos, m_pressedHandleIndex, and updatePolish().
Reimplemented from QQuickControlPrivate.
Definition at line 1029 of file qquicksplitview.cpp.
References arg, QQuickItem::childAt(), QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), QString::fromLatin1(), QQuickSplitHandleAttachedPrivate::get(), QQuickControlPrivate::handlePress(), QQuickItem::height, Qt::Horizontal, i, QListSpecialMethodsBase< T >::indexOf(), isHorizontal(), m_handleItems, m_handlePosBeforePress, m_leftOrTopItemSizeBeforePress, m_mousePos, m_nextVisibleIndexAfterPressedHandle, m_orientation, m_pressedHandleIndex, m_pressPos, m_rightOrBottomItemSizeBeforePress, QQmlObjectModel::object, QQuickItem::position(), Q_ASSERT_X, Q_FUNC_INFO, qCDebug, qobject_cast< QQuickItem * >(), qPrintable, QQuickSplitHandleAttachedPrivate::setPressed(), setResizing(), QQuickItem::width, QPointF::x(), and QPointF::y().
|
overridevirtual |
Reimplemented from QQuickControlPrivate.
Definition at line 1094 of file qquicksplitview.cpp.
References QList< T >::at(), QQuickSplitHandleAttachedPrivate::get(), QQuickControlPrivate::handleRelease(), m_handleItems, m_handlePosBeforePress, m_leftOrTopItemSizeBeforePress, m_mousePos, m_pressedHandleIndex, m_pressPos, m_rightOrBottomItemSizeBeforePress, QQuickSplitHandleAttachedPrivate::setPressed(), and setResizing().
bool QQuickSplitViewPrivate::isHorizontal | ( | ) | const |
Definition at line 1015 of file qquicksplitview.cpp.
References Qt::Horizontal, and m_orientation.
Referenced by accumulatedSize(), handlePress(), layout(), layoutPositionItems(), layoutResizeFillItem(), layoutResizeSplitItems(), limitAndApplySizes(), and resizeHandle().
|
overridevirtual |
Reimplemented from QQuickControlPrivate.
Definition at line 1146 of file qquicksplitview.cpp.
References requestLayout().
|
overridevirtual |
Reimplemented from QQuickControlPrivate.
Definition at line 1141 of file qquicksplitview.cpp.
References requestLayout().
|
overridevirtual |
Reimplemented from QQuickItemChangeListener.
Definition at line 1116 of file qquicksplitview.cpp.
References QList< T >::at(), QQuickContainerPrivate::contentModel, handleIndexForSplitIndex(), QQmlObjectModel::indexOf(), QGraphicsItem::isVisible(), item, m_handleItems, Q_ASSERT, qCDebug, requestLayout(), QQuickItem::setVisible(), updateFillIndex(), and updateHandleVisibilities().
void QQuickSplitViewPrivate::layout | ( | ) |
Definition at line 699 of file qquicksplitview.cpp.
References arg, QQuickItemPrivate::componentComplete, QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), QString::fromLatin1(), isHorizontal(), layoutPositionItems(), layoutResizeFillItem(), layoutResizeSplitItems(), limitAndApplySizes(), m_fillIndex, m_handle, m_handleItems, m_layingOut, m_layoutData, QQmlObjectModel::object, Q_ASSERT_X, Q_FUNC_INFO, qCDebug, qobject_cast< QQuickItem * >(), qPrintable, and QList< T >::size().
Referenced by updatePolish().
void QQuickSplitViewPrivate::layoutPositionItems | ( | const QQuickItem * | fillItem | ) |
Definition at line 618 of file qquicksplitview.cpp.
References QList< T >::at(), QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), effectiveSizeData(), QQuickItemPrivate::get(), QQuickItem::height, i, isHorizontal(), QGraphicsItem::isVisible(), item, m_fillIndex, m_handle, m_handleItems, QQmlObjectModel::object, Q_UNLIKELY, qCDebug, qobject_cast< QQuickItem * >(), QGraphicsItem::setX(), QQuickItem::setX(), QGraphicsItem::setY(), QQuickItem::setY(), and QQuickItem::width.
Referenced by layout().
void QQuickSplitViewPrivate::layoutResizeFillItem | ( | QQuickItem * | fillItem, |
qreal & | usedWidth, | ||
qreal & | usedHeight, | ||
int | indexBeingResizedDueToDrag | ||
) |
Definition at line 484 of file qquicksplitview.cpp.
References effectiveSizeData(), QQuickItemPrivate::get(), QQuickSplitViewPrivate::LayoutData::height, isHorizontal(), QQuickItem::isVisible(), m_fillIndex, m_layoutData, qBound(), qCDebug, and QQuickSplitViewPrivate::LayoutData::width.
Referenced by layout().
void QQuickSplitViewPrivate::layoutResizeSplitItems | ( | qreal & | usedWidth, |
qreal & | usedHeight, | ||
int & | indexBeingResizedDueToDrag | ||
) |
Definition at line 278 of file qquicksplitview.cpp.
References accumulatedSize(), QList< T >::at(), QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), effectiveSizeData(), QQuickItemPrivate::get(), QQuickItem::height, QQuickSplitViewPrivate::LayoutData::height, isHorizontal(), QGraphicsItem::isVisible(), QQuickItem::isVisible(), item, m_fillIndex, m_handle, m_handleItems, m_handlePosBeforePress, m_layoutData, m_mousePos, m_nextVisibleIndexAfterPressedHandle, m_pressedHandleIndex, m_pressPos, QQmlObjectModel::object, qBound(), qCDebug, qMax(), qMin(), qobject_cast< QQuickItem * >(), QList< T >::size(), QQuickSplitViewPrivate::LayoutData::wasResizedByHandle, QQuickItem::width, QQuickSplitViewPrivate::LayoutData::width, QPointF::x(), QQuickItem::x, QPointF::y(), and QQuickItem::y.
Referenced by layout().
Definition at line 531 of file qquicksplitview.cpp.
References QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), effectiveSizeData(), QQuickItemPrivate::get(), QQuickSplitViewPrivate::LayoutData::height, isHorizontal(), QGraphicsItem::isVisible(), item, m_fillIndex, m_ignoreNextLayoutRequest, m_layoutData, QQmlObjectModel::object, qobject_cast< QQuickItem * >(), QQuickSplitViewAttached::setPreferredHeight(), QQuickSplitViewAttached::setPreferredWidth(), QQuickSplitViewPrivate::LayoutData::wasResizedByHandle, and QQuickSplitViewPrivate::LayoutData::width.
Referenced by layout().
void QQuickSplitViewPrivate::removeExcessHandles | ( | ) |
Definition at line 810 of file qquicksplitview.cpp.
References QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), m_handleItems, qCDebug, qMax(), QList< T >::size(), and QList< T >::takeLast().
void QQuickSplitViewPrivate::requestLayout | ( | ) |
Definition at line 680 of file qquicksplitview.cpp.
Referenced by itemImplicitHeightChanged(), itemImplicitWidthChanged(), itemVisibilityChanged(), and QQuickSplitViewAttachedPrivate::requestLayoutView().
void QQuickSplitViewPrivate::resizeHandle | ( | QQuickItem * | handleItem | ) |
Definition at line 923 of file qquicksplitview.cpp.
References QQuickItem::implicitHeight, QQuickItem::implicitWidth, isHorizontal(), QQuickItem::setHeight(), and QQuickItem::setWidth().
Referenced by createHandleItem(), and resizeHandles().
void QQuickSplitViewPrivate::resizeHandles | ( | ) |
Definition at line 930 of file qquicksplitview.cpp.
References m_handleItems, and resizeHandle().
void QQuickSplitViewPrivate::setResizing | ( | bool | resizing | ) |
Definition at line 1005 of file qquicksplitview.cpp.
References emit, and m_resizing.
Referenced by handlePress(), and handleRelease().
QT_BEGIN_NAMESPACE void QQuickSplitViewPrivate::updateFillIndex | ( | ) |
Lays out items with a draggable splitter between each item.
\qmltype SplitView \inherits Container
! \instantiates QQuickSplitView \inqmlmodule QtQuick.Controls
SplitView is a control that lays out items horizontally or vertically with a draggable splitter between each item.
SplitView supports the following attached properties on items it manages:
\list
In addition, each handle has the following read-only attached properties:
\list
The preferred size of items in a SplitView can be specified via \l{Item::}{implicitWidth} and \l{Item::}{implicitHeight} or SplitView.preferredWidth
and SplitView.preferredHeight:
For a horizontal SplitView, it's not necessary to specify the preferred height of each item, as they will be resized to the height of the view. This applies in reverse for vertical views.
When a split handle is dragged, the SplitView.preferredWidth
or SplitView.preferredHeight
property is overwritten, depending on the \l orientation of the view.
To limit the size of items in a horizontal view, use the following properties:
To limit the size of items in a vertical view, use the following properties:
There will always be one item (the fill item) in the SplitView that has SplitView.fillWidth
set to true
(or SplitView.fillHeight
, if \l orientation is Qt.Vertical
). This means that the item will get all leftover space when other items have been laid out. By default, the last visible child of the SplitView will have this set, but it can be changed by explicitly setting fillWidth
to true
on another item.
A handle can belong to the item either on the left or top side, or on the right or bottom side:
\list
To create a SplitView with three items, and let the center item get superfluous space, one could do the following:
Definition at line 231 of file qquicksplitview.cpp.
References QQuickSplitViewAttached::fillHeight, QQuickSplitViewAttached::fillWidth, i, QGraphicsItem::isVisible(), item, qCDebug, and qobject_cast< QQuickItem * >().
Referenced by itemVisibilityChanged(), QQuickSplitViewAttached::setFillHeight(), and QQuickSplitViewAttached::setFillWidth().
void QQuickSplitViewPrivate::updateHandleVisibilities | ( | ) |
Definition at line 943 of file qquicksplitview.cpp.
References QList< T >::at(), QQuickContainerPrivate::contentModel, QQmlObjectModel::count(), i, QList< T >::isEmpty(), QGraphicsItem::isVisible(), QQuickItem::isVisible(), item, m_handleItems, QQmlObjectModel::object, qCDebug, qobject_cast< QQuickItem * >(), and QQuickItem::setVisible().
Referenced by itemVisibilityChanged().
void QQuickSplitViewPrivate::updateHoveredHandle | ( | QQuickItem * | hoveredItem | ) |
Definition at line 977 of file qquicksplitview.cpp.
References QList< T >::at(), QQuickSplitHandleAttachedPrivate::get(), QListSpecialMethodsBase< T >::indexOf(), m_handleItems, m_hoveredHandleIndex, qCDebug, and QQuickSplitHandleAttachedPrivate::setHovered().
|
overridevirtual |
Reimplemented from QQuickItemPrivate.
Definition at line 1151 of file qquicksplitview.cpp.
References layout().
Referenced by handleMove().
int QQuickSplitViewPrivate::m_fillIndex = -1 |
Definition at line 100 of file qquicksplitview_p_p.h.
Referenced by accumulatedSize(), layout(), layoutPositionItems(), layoutResizeFillItem(), layoutResizeSplitItems(), and limitAndApplySizes().
QQmlComponent* QQuickSplitViewPrivate::m_handle = nullptr |
Definition at line 89 of file qquicksplitview_p_p.h.
Referenced by createHandleItem(), createHandles(), layout(), layoutPositionItems(), and layoutResizeSplitItems().
QList<QQuickItem*> QQuickSplitViewPrivate::m_handleItems |
Definition at line 90 of file qquicksplitview_p_p.h.
Referenced by accumulatedSize(), createHandleItem(), createHandles(), destroyHandles(), handlePress(), handleRelease(), itemVisibilityChanged(), layout(), layoutPositionItems(), layoutResizeSplitItems(), removeExcessHandles(), resizeHandles(), updateHandleVisibilities(), and updateHoveredHandle().
QPointF QQuickSplitViewPrivate::m_handlePosBeforePress |
Definition at line 97 of file qquicksplitview_p_p.h.
Referenced by handlePress(), handleRelease(), and layoutResizeSplitItems().
int QQuickSplitViewPrivate::m_hoveredHandleIndex = -1 |
Definition at line 92 of file qquicksplitview_p_p.h.
Referenced by updateHoveredHandle().
bool QQuickSplitViewPrivate::m_ignoreNextLayoutRequest = false |
Definition at line 102 of file qquicksplitview_p_p.h.
Referenced by limitAndApplySizes().
bool QQuickSplitViewPrivate::m_layingOut = false |
Definition at line 101 of file qquicksplitview_p_p.h.
Referenced by layout().
QHash<QQuickItem*, LayoutData> QQuickSplitViewPrivate::m_layoutData |
Definition at line 91 of file qquicksplitview_p_p.h.
Referenced by layout(), layoutResizeFillItem(), layoutResizeSplitItems(), and limitAndApplySizes().
qreal QQuickSplitViewPrivate::m_leftOrTopItemSizeBeforePress = 0.0 |
Definition at line 98 of file qquicksplitview_p_p.h.
Referenced by handlePress(), and handleRelease().
QPointF QQuickSplitViewPrivate::m_mousePos |
Definition at line 96 of file qquicksplitview_p_p.h.
Referenced by handleMove(), handlePress(), handleRelease(), and layoutResizeSplitItems().
int QQuickSplitViewPrivate::m_nextVisibleIndexAfterPressedHandle = -1 |
Definition at line 94 of file qquicksplitview_p_p.h.
Referenced by handlePress(), and layoutResizeSplitItems().
Qt::Orientation QQuickSplitViewPrivate::m_orientation = Qt::Horizontal |
Definition at line 88 of file qquicksplitview_p_p.h.
Referenced by handlePress(), and isHorizontal().
int QQuickSplitViewPrivate::m_pressedHandleIndex = -1 |
Definition at line 93 of file qquicksplitview_p_p.h.
Referenced by handleMove(), handlePress(), handleRelease(), and layoutResizeSplitItems().
QPointF QQuickSplitViewPrivate::m_pressPos |
Definition at line 95 of file qquicksplitview_p_p.h.
Referenced by handlePress(), handleRelease(), and layoutResizeSplitItems().
bool QQuickSplitViewPrivate::m_resizing = false |
Definition at line 103 of file qquicksplitview_p_p.h.
Referenced by setResizing().
qreal QQuickSplitViewPrivate::m_rightOrBottomItemSizeBeforePress = 0.0 |
Definition at line 99 of file qquicksplitview_p_p.h.
Referenced by handlePress(), and handleRelease().