Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickitemsmodule.cpp
Go to the documentation of this file.
1// Copyright (C) 2020 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
5
6#include "qquickitem.h"
7#include "qquickitem_p.h"
8#include "qquickevents_p_p.h"
9#include "qquickrectangle_p.h"
10#include "qquickfocusscope_p.h"
11#include "qquicktext_p.h"
12#include "qquicktextinput_p.h"
13#include "qquicktextedit_p.h"
14#include "qquicktextdocument.h"
15#include "qquickimage_p.h"
16#include "qquickborderimage_p.h"
17#include "qquickscalegrid_p_p.h"
18#include "qquickmousearea_p.h"
19#include "qquickpincharea_p.h"
20#include "qquickflickable_p.h"
21#include "qquickflickable_p_p.h"
22#if QT_CONFIG(quick_listview)
23#include "qquicklistview_p.h"
24#endif
25#if QT_CONFIG(quick_gridview)
26#include "qquickgridview_p.h"
27#endif
28#if QT_CONFIG(quick_pathview)
29#include "qquickpathview_p.h"
30#endif
31#if QT_CONFIG(quick_tableview)
32#include "qquicktableview_p.h"
33#endif
34#if QT_CONFIG(quick_viewtransitions)
36#endif
37#if QT_CONFIG(quick_path)
38#include <private/qquickpath_p.h>
39#include <private/qquickpathinterpolator_p.h>
40#endif
41#if QT_CONFIG(quick_positioners)
42#include "qquickpositioners_p.h"
43#endif
44#if QT_CONFIG(quick_repeater)
45#include "qquickrepeater_p.h"
46#endif
47#include "qquickloader_p.h"
48#if QT_CONFIG(quick_animatedimage)
50#endif
51#if QT_CONFIG(quick_flipable)
52#include "qquickflipable_p.h"
53#endif
54#include "qquicktranslate_p.h"
57//#include <private/qquickpincharea_p.h>
58#if QT_CONFIG(quick_canvas)
59#include <QtQuick/private/qquickcanvasitem_p.h>
60#include <QtQuick/private/qquickcontext2d_p.h>
61#endif
63#if QT_CONFIG(quick_sprite)
64#include "qquicksprite_p.h"
67#endif
69#if QT_CONFIG(quick_shadereffect)
70#include <QtQuick/private/qquickshadereffectsource_p.h>
73#endif
74#if QT_CONFIG(quick_draganddrop)
75#include "qquickdrag_p.h"
76#include "qquickdroparea_p.h"
77#endif
79#include <QtQuick/private/qquickaccessibleattached_p.h>
80
87
91
92#include "moc_qquickitemsmodule_p.cpp"
93
95{
96 // When setting a parent (especially during dynamic object creation) in QML,
97 // also try to set up the analogous item/window relationship.
100 if (item) {
101 // An Item has another Item
102 item->setParentItem(parentItem);
104 } else if (parentItem->window()) {
105 QQuickWindow *win = qmlobject_cast<QQuickWindow *>(obj);
106 if (win) {
107 // A Window inside an Item should be transient for that item's window
108 qCDebug(lcTransient) << win << "is transient for" << parentItem->window();
109 win->setTransientParent(parentItem->window());
111 }
112 } else if (QQuickPointerHandler *handler = qmlobject_cast<QQuickPointerHandler *>(obj)) {
113 QQuickItemPrivate::get(parentItem)->addPointerHandler(handler);
114 handler->setParent(parent);
116 }
118 } else if (QQuickWindow *parentWindow = qmlobject_cast<QQuickWindow *>(parent)) {
119 QQuickWindow *win = qmlobject_cast<QQuickWindow *>(obj);
120 if (win) {
121 // A Window inside a Window should be transient for it
122 qCDebug(lcTransient) << win << "is transient for" << parentWindow;
123 win->setTransientParent(parentWindow);
126 // The parent of an Item inside a Window is actually the implicit content Item
127 item->setParentItem(parentWindow->contentItem());
129 } else if (QQuickPointerHandler *handler = qmlobject_cast<QQuickPointerHandler *>(obj)) {
130 QQuickItemPrivate::get(parentWindow->contentItem())->addPointerHandler(handler);
131 handler->setParent(parentWindow->contentItem());
133 }
135 } else if (qmlobject_cast<QQuickItem *>(obj)) {
137 }
139}
140
142{
145
146 qRegisterMetaType<QQuickAnchorLine>("QQuickAnchorLine");
147 qRegisterMetaType<QQuickHandlerPoint>();
148}
149
150//static void initResources()
151//{
152// Q_INIT_RESOURCE(items);
153//}
154
156
158{
159// initResources();
161}
162
void setParentItem(QGraphicsItem *parent)
Sets this item's parent item to newParent.
\inmodule QtCore
Definition qobject.h:90
virtual void addPointerHandler(QQuickPointerHandler *h)
static QQuickItemPrivate * get(QQuickItem *item)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
QWidget * window() const
Returns the window for this widget, i.e.
Definition qwidget.cpp:4320
@ AutoParentRegistration
int Q_QML_EXPORT qmlregister(RegistrationType, void *)
Definition qqml.cpp:483
Combined button and popup list for selecting options.
#define qCDebug(category,...)
#define Q_DECLARE_LOGGING_CATEGORY(name)
GLhandleARB obj
[2]
QQuickItem * qmlobject_cast< QQuickItem * >(QObject *object)
QT_BEGIN_NAMESPACE static QT_END_NAMESPACE QQmlPrivate::AutoParentResult qquickitem_autoParent(QObject *obj, QObject *parent)
static void qt_quickitems_defineModule()
QWidget * win
Definition settings.cpp:6
QGraphicsItem * item
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent