12#if QT_CONFIG(quicktemplates2_container)
16#include <QtCore/qloggingcategory.h>
17#include <QtQml/qqmlinfo.h>
18#include <QtQuick/qquickitem.h>
19#include <QtQuick/private/qquickaccessibleattached_p.h>
20#include <QtQuick/private/qquicktransition_p.h>
21#include <QtQuick/private/qquickitem_p.h>
378 : transitionManager(
this)
387 q->setParentItem(qobject_cast<QQuickItem *>(
parent));
394 QObject::connect(
popupItem, &QQuickControl::implicitBackgroundHeightChanged,
q, &QQuickPopup::implicitBackgroundHeightChanged);
400#if QT_CONFIG(quicktemplates2_container)
414 static const QQuickPopup::ClosePolicy outsideFlags = QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnReleaseOutside;
415 static const QQuickPopup::ClosePolicy outsideParentFlags = QQuickPopup::CloseOnPressOutsideParent | QQuickPopup::CloseOnReleaseOutsideParent;
436#if QT_CONFIG(quicktemplates2_multitouch)
472 tryClose(point, QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnPressOutsideParent);
486 tryClose(point, QQuickPopup::CloseOnReleaseOutside | QQuickPopup::CloseOnReleaseOutsideParent);
500 if (
p->mouseGrabberPopup ==
q)
501 p->mouseGrabberPopup =
nullptr;
509 switch (
event->type()) {
517 Q_UNREACHABLE_RETURN(
false);
523 switch (
event->type()) {
529 Q_UNREACHABLE_RETURN(
false);
533#if QT_CONFIG(quicktemplates2_multitouch)
536 switch (
event->type()) {
544 switch (point.
state()) {
573 qmlWarning(
q) <<
"cannot find any window to open popup in.";
589 while (ancestor && topPopup) {
590 if (ancestor == topPopup)
592 ancestor = ancestor->
parent();
594 if (topPopup && topPopup !=
q && ancestor) {
595 QQuickItem *topPopupItem = popupStack.first()->popupItem();
605 emit q->aboutToShow();
610 emit q->visibleChanged();
613 if (overlayPrivate->lastActiveFocusItem.isNull())
647 emit q->aboutToHide();
648 emit q->openedChanged();
658 emit q->openedChanged();
677 for (
auto popup : stackingOrderPopups) {
679 && popup->hasFocus()) {
680 nextFocusPopup = popup;
685 if (nextFocusPopup) {
688 auto *appWindow = qobject_cast<QQuickApplicationWindow*>(
window);
689 auto *contentItem = appWindow ? appWindow->contentItem() :
window->
contentItem();
692 if (!contentItem->scopedFocusItem()
693 && !overlayPrivate->lastActiveFocusItem.isNull()) {
698 overlayPrivate->lastActiveFocusItem =
nullptr;
705 emit q->visibleChanged();
722 return QMarginsF(
q->leftMargin(),
q->topMargin(),
q->rightMargin(),
q->bottomMargin());
728 qreal oldMargin =
q->topMargin();
732 emit q->topMarginChanged();
741 qreal oldMargin =
q->leftMargin();
745 emit q->leftMarginChanged();
754 qreal oldMargin =
q->rightMargin();
758 emit q->rightMarginChanged();
767 qreal oldMargin =
q->bottomMargin();
771 emit q->bottomMarginChanged();
848 p->updateLocale(appWindow->locale(),
false);
851 emit q->windowChanged(newWindow);
861 q->setParentItem(
nullptr);
886 if (!
item && popup->isModal())
892 item->setZ(popup->
z());
894 qCDebug(lcDimmer) <<
"dimmer" <<
item <<
"registered with" << parent;
895 parent->
setProperty(
"_q_dimmerItem", QVariant::fromValue<QQuickItem*>(
item));
896 if (popup->isModal()) {
901#if QT_CONFIG(quicktemplates2_hover)
912 <<
"for popup" << popup <<
"with parent" << parent <<
"- item is:" <<
item;
924 QQuickOverlayAttached *overlayAttached = qobject_cast<QQuickOverlayAttached *>(qmlAttachedPropertiesObject<QQuickOverlay>(
q,
false));
926 component =
modal ? overlayAttached->modal() : overlayAttached->modeless();
953 if (dimmerParentItem->property(
"_q_dimmerItem").value<
QQuickItem*>() ==
dimmer)
1048 d->relaxEdgeConstraint =
true;
1058QQuickPopup::~QQuickPopup()
1061 d->inDestructor =
true;
1063 QQuickItem *currentContentItem =
d->popupItem->d_func()->contentItem.data();
1064 if (currentContentItem) {
1069 setParentItem(
nullptr);
1075 d->finalizeExitTransition();
1077 delete d->popupItem;
1078 d->popupItem =
nullptr;
1079 delete d->positioner;
1080 d->positioner =
nullptr;
1117 return d->effectiveX;
1120void QQuickPopup::setX(
qreal x)
1136 return d->effectiveY;
1139void QQuickPopup::setY(
qreal y)
1145QPointF QQuickPopup::position()
const
1148 return QPointF(
d->effectiveX,
d->effectiveY);
1151void QQuickPopup::setPosition(
const QPointF &
pos)
1156 if (!xChange && !yChange)
1161 if (
d->popupItem->isVisible()) {
1191 return d->popupItem->z();
1194void QQuickPopup::setZ(
qreal z)
1200 d->popupItem->setZ(
z);
1204void QQuickPopup::resetZ()
1219 return d->popupItem->width();
1226 d->popupItem->setWidth(
width);
1229void QQuickPopup::resetWidth()
1235 d->hasWidth =
false;
1236 d->popupItem->resetWidth();
1237 if (
d->popupItem->isVisible())
1249 return d->popupItem->height();
1255 d->hasHeight =
true;
1256 d->popupItem->setHeight(
height);
1259void QQuickPopup::resetHeight()
1265 d->hasHeight =
false;
1266 d->popupItem->resetHeight();
1267 if (
d->popupItem->isVisible())
1279 return d->popupItem->implicitWidth();
1282void QQuickPopup::setImplicitWidth(
qreal width)
1285 d->popupItem->setImplicitWidth(
width);
1296 return d->popupItem->implicitHeight();
1302 d->popupItem->setImplicitHeight(
height);
1318 return d->popupItem->contentWidth();
1321void QQuickPopup::setContentWidth(
qreal width)
1324 d->popupItem->setContentWidth(
width);
1340 return d->popupItem->contentHeight();
1346 d->popupItem->setContentHeight(
height);
1361 return d->popupItem->availableWidth();
1376 return d->popupItem->availableHeight();
1394 return d->popupItem->spacing();
1403void QQuickPopup::resetSpacing()
1425void QQuickPopup::setMargins(
qreal margins)
1440 if (!
qFuzzyCompare(newMargins.bottom(), oldMargins.bottom()))
1445void QQuickPopup::resetMargins()
1464 if (
d->hasTopMargin)
1465 return d->topMargin;
1469void QQuickPopup::setTopMargin(
qreal margin)
1472 d->setTopMargin(margin);
1475void QQuickPopup::resetTopMargin()
1478 d->setTopMargin(-1,
true);
1495 if (
d->hasLeftMargin)
1496 return d->leftMargin;
1500void QQuickPopup::setLeftMargin(
qreal margin)
1503 d->setLeftMargin(margin);
1506void QQuickPopup::resetLeftMargin()
1509 d->setLeftMargin(-1,
true);
1526 if (
d->hasRightMargin)
1527 return d->rightMargin;
1531void QQuickPopup::setRightMargin(
qreal margin)
1534 d->setRightMargin(margin);
1537void QQuickPopup::resetRightMargin()
1540 d->setRightMargin(-1,
true);
1557 if (
d->hasBottomMargin)
1558 return d->bottomMargin;
1562void QQuickPopup::setBottomMargin(
qreal margin)
1565 d->setBottomMargin(margin);
1568void QQuickPopup::resetBottomMargin()
1571 d->setBottomMargin(-1,
true);
1586 return d->popupItem->padding();
1589void QQuickPopup::setPadding(
qreal padding)
1595void QQuickPopup::resetPadding()
1598 d->popupItem->resetPadding();
1614 return d->popupItem->topPadding();
1617void QQuickPopup::setTopPadding(
qreal padding)
1620 d->popupItem->setTopPadding(
padding);
1623void QQuickPopup::resetTopPadding()
1626 d->popupItem->resetTopPadding();
1642 return d->popupItem->leftPadding();
1645void QQuickPopup::setLeftPadding(
qreal padding)
1648 d->popupItem->setLeftPadding(
padding);
1651void QQuickPopup::resetLeftPadding()
1654 d->popupItem->resetLeftPadding();
1670 return d->popupItem->rightPadding();
1673void QQuickPopup::setRightPadding(
qreal padding)
1676 d->popupItem->setRightPadding(
padding);
1679void QQuickPopup::resetRightPadding()
1682 d->popupItem->resetRightPadding();
1698 return d->popupItem->bottomPadding();
1701void QQuickPopup::setBottomPadding(
qreal padding)
1704 d->popupItem->setBottomPadding(
padding);
1707void QQuickPopup::resetBottomPadding()
1710 d->popupItem->resetBottomPadding();
1723 return d->popupItem->locale();
1726void QQuickPopup::setLocale(
const QLocale &locale)
1729 d->popupItem->setLocale(
locale);
1732void QQuickPopup::resetLocale()
1735 d->popupItem->resetLocale();
1751bool QQuickPopup::isMirrored()
const
1754 return d->popupItem->isMirrored();
1787 return d->popupItem->font();
1790void QQuickPopup::setFont(
const QFont &
font)
1793 d->popupItem->setFont(
font);
1796void QQuickPopup::resetFont()
1799 d->popupItem->resetFont();
1811 return d->popupItem;
1822 return d->parentItem;
1825void QQuickPopup::setParentItem(
QQuickItem *parent)
1831 if (
d->parentItem) {
1842 }
else if (
d->inDestructor) {
1846 if (!
d->window &&
d->transitionManager.isRunning()) {
1848 d->finalizeEnterTransition();
1850 d->finalizeExitTransition();
1860void QQuickPopup::resetParentItem()
1865 setParentItem(qobject_cast<QQuickItem *>(
parent()));
1888 return d->popupItem->background();
1891void QQuickPopup::setBackground(
QQuickItem *background)
1923 return d->popupItem->contentItem();
1931 QQuickItem *oldContentItem =
d->complete ?
d->popupItem->d_func()->contentItem.data()
1935 d->popupItem->setContentItem(
item);
1937 QQuickItem *newContentItem =
d->popupItem->d_func()->contentItem.data();
1939 if (oldContentItem != newContentItem)
1961 if (!
p->contentItem)
1962 p->executeContentItem();
2000 return d->popupItem->clip();
2003void QQuickPopup::setClip(
bool clip)
2006 if (
clip ==
d->popupItem->clip())
2008 d->popupItem->setClip(
clip);
2024bool QQuickPopup::hasFocus()
const
2030void QQuickPopup::setFocus(
bool focus)
2047bool QQuickPopup::hasActiveFocus()
const
2050 return d->popupItem->hasActiveFocus();
2074bool QQuickPopup::isModal()
const
2080void QQuickPopup::setModal(
bool modal)
2086 if (
d->complete &&
d->visible)
2114void QQuickPopup::setDim(
bool dim)
2123 if (
d->complete &&
d->visible)
2128void QQuickPopup::resetDim()
2145bool QQuickPopup::isVisible()
const
2148 return d->visible &&
d->popupItem->isVisible();
2157 if (!
d->complete || (
visible && !
d->window)) {
2163 d->transitionManager.transitionEnter();
2165 d->transitionManager.transitionExit();
2176bool QQuickPopup::isEnabled()
const
2179 return d->popupItem->isEnabled();
2182void QQuickPopup::setEnabled(
bool enabled)
2197bool QQuickPopup::isOpened()
const
2214 return d->popupItem->opacity();
2217void QQuickPopup::setOpacity(
qreal opacity)
2235 return d->popupItem->scale();
2243 d->popupItem->setScale(
scale);
2276 return d->closePolicy;
2279void QQuickPopup::setClosePolicy(ClosePolicy
policy)
2282 d->hasClosePolicy =
true;
2289void QQuickPopup::resetClosePolicy()
2293 d->hasClosePolicy =
false;
2311 return static_cast<TransformOrigin
>(
d->popupItem->transformOrigin());
2314void QQuickPopup::setTransformOrigin(TransformOrigin origin)
2347 if (
d->enter == transition)
2349 d->enter = transition;
2380 if (
d->exit == transition)
2382 d->exit = transition;
2397qreal QQuickPopup::horizontalPadding()
const
2400 return d->popupItem->horizontalPadding();
2403void QQuickPopup::setHorizontalPadding(
qreal padding)
2406 d->popupItem->setHorizontalPadding(
padding);
2409void QQuickPopup::resetHorizontalPadding()
2412 d->popupItem->resetHorizontalPadding();
2426qreal QQuickPopup::verticalPadding()
const
2429 return d->popupItem->verticalPadding();
2432void QQuickPopup::setVerticalPadding(
qreal padding)
2435 d->popupItem->setVerticalPadding(
padding);
2438void QQuickPopup::resetVerticalPadding()
2441 d->popupItem->resetVerticalPadding();
2455qreal QQuickPopup::implicitContentWidth()
const
2458 return d->popupItem->implicitContentWidth();
2472qreal QQuickPopup::implicitContentHeight()
const
2475 return d->popupItem->implicitContentHeight();
2489qreal QQuickPopup::implicitBackgroundWidth()
const
2492 return d->popupItem->implicitBackgroundWidth();
2506qreal QQuickPopup::implicitBackgroundHeight()
const
2509 return d->popupItem->implicitBackgroundHeight();
2520qreal QQuickPopup::topInset()
const
2523 return d->popupItem->topInset();
2526void QQuickPopup::setTopInset(
qreal inset)
2529 d->popupItem->setTopInset(inset);
2532void QQuickPopup::resetTopInset()
2535 d->popupItem->resetTopInset();
2546qreal QQuickPopup::leftInset()
const
2549 return d->popupItem->leftInset();
2552void QQuickPopup::setLeftInset(
qreal inset)
2555 d->popupItem->setLeftInset(inset);
2558void QQuickPopup::resetLeftInset()
2561 d->popupItem->resetLeftInset();
2572qreal QQuickPopup::rightInset()
const
2575 return d->popupItem->rightInset();
2578void QQuickPopup::setRightInset(
qreal inset)
2581 d->popupItem->setRightInset(inset);
2584void QQuickPopup::resetRightInset()
2587 d->popupItem->resetRightInset();
2598qreal QQuickPopup::bottomInset()
const
2601 return d->popupItem->bottomInset();
2604void QQuickPopup::setBottomInset(
qreal inset)
2607 d->popupItem->setBottomInset(inset);
2610void QQuickPopup::resetBottomInset()
2613 d->popupItem->resetBottomInset();
2645bool QQuickPopup::filtersChildMouseEvents()
const
2648 return d->popupItem->filtersChildMouseEvents();
2651void QQuickPopup::setFiltersChildMouseEvents(
bool filter)
2654 d->popupItem->setFiltersChildMouseEvents(
filter);
2670 d->popupItem->forceActiveFocus(reason);
2676 d->complete =
false;
2680 d->popupItem->classBegin();
2686 qCDebug(lcPopup) <<
"componentComplete" <<
this;
2690 if (
d->visible &&
d->window)
2691 d->transitionManager.transitionEnter();
2694 d->popupItem->componentComplete();
2696 if (
auto currentContentItem =
d->popupItem->d_func()->contentItem.data()) {
2728 if (!hasActiveFocus())
2731#if QT_CONFIG(shortcut)
2732 if (
d->closePolicy.testFlag(QQuickPopup::CloseOnEscape)
2734#
if defined(Q_OS_ANDROID)
2759 event->setAccepted(
d->handleMouseEvent(
d->popupItem,
event));
2765 event->setAccepted(
d->handleMouseEvent(
d->popupItem,
event));
2771 event->setAccepted(
d->handleMouseEvent(
d->popupItem,
event));
2788 switch (
event->type()) {
2797#if QT_CONFIG(quicktemplates2_multitouch)
2817#if QT_CONFIG(quicktemplates2_multitouch)
2821 d->handleTouchEvent(
d->popupItem,
event);
2824void QQuickPopup::touchUngrabEvent()
2831#if QT_CONFIG(wheelevent)
2832void QQuickPopup::wheelEvent(QWheelEvent *
event)
2846 qCDebug(lcPopup) <<
"contentSizeChange called on" <<
this <<
"with newSize" << newSize <<
"oldSize" << oldSize;
2863 qCDebug(lcPopup) <<
"geometryChange called on" <<
this <<
"with newGeometry" << newGeometry <<
"oldGeometry" << oldGeometry;
2906 const bool tp = !
qFuzzyCompare(newPadding.top(), oldPadding.top());
2907 const bool lp = !
qFuzzyCompare(newPadding.left(), oldPadding.left());
2908 const bool rp = !
qFuzzyCompare(newPadding.right(), oldPadding.right());
2909 const bool bp = !
qFuzzyCompare(newPadding.bottom(), oldPadding.bottom());
2921 emit horizontalPaddingChanged();
2925 emit verticalPaddingChanged();
2940 emit topInsetChanged();
2942 emit leftInsetChanged();
2944 emit rightInsetChanged();
2946 emit bottomInsetChanged();
2954#if QT_CONFIG(accessibility)
2955QAccessible::Role QQuickPopup::effectiveAccessibleRole()
const
2957 auto *attached = qmlAttachedPropertiesObject<QQuickAccessibleAttached>(
this,
false);
2959 auto role = QAccessible::NoRole;
2960 if (
auto *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(attached))
2961 role = accessibleAttached->role();
2962 if (role == QAccessible::NoRole)
2963 role = accessibleRole();
2968QAccessible::Role QQuickPopup::accessibleRole()
const
2970 return QAccessible::Dialog;
2973void QQuickPopup::accessibilityActiveChanged(
bool active)
2982 return d->popupItem->accessibleName();
2988 d->popupItem->maybeSetAccessibleName(
name);
2994 return d->popupItem->accessibleProperty(propertyName);
3000 return d->popupItem->setAccessibleProperty(propertyName,
value);
3005#include "moc_qquickpopup_p.cpp"
virtual void reject()
Hides the modal dialog and sets the result code to Rejected.
The QEventPoint class provides information about a point in a QPointerEvent.
int id
the ID number of this event point.
State state
the current state of the event point.
QPointF position
the position of this point.
The QFocusEvent class contains event parameters for widget focus events.
void setAcceptHoverEvents(bool enabled)
void stackBefore(const QGraphicsItem *sibling)
void setParentItem(QGraphicsItem *parent)
Sets this item's parent item to newParent.
QPointF mapToScene(const QPointF &point) const
Maps the point point, which is in this item's coordinate system, to the scene's coordinate system,...
void setAcceptedMouseButtons(Qt::MouseButtons buttons)
Sets the mouse buttons that this item accepts mouse events for.
void setCursor(const QCursor &cursor)
Sets the current cursor shape for the item to cursor.
The QKeyEvent class describes a key event.
static QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiverPrivate, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
static bool disconnect(const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiverPrivate, Func2 slot)
QObject * parent() const
Returns a pointer to the parent object.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
bool setProperty(const char *name, const QVariant &value)
Sets the value of the object's name property to value.
void deleteLater()
\threadsafe
The QPalette class contains color groups for each widget state.
\inmodule QtCore\reentrant
The QQmlComponent class encapsulates a QML component definition.
The QQmlContext class defines a context within a QML engine.
static void setContextForObject(QObject *, QQmlContext *)
Sets the QQmlContext for the object to context.
bool write(const QVariant &) const
Sets the property value to value.
static void warnIfCustomizationNotSupported(QObject *control, QQuickItem *item, const QString &propertyName)
static QQuickControlPrivate * get(QQuickControl *control)
void contentItemChanged()
static void data_clear(QQmlListProperty< QObject > *)
static qsizetype children_count(QQmlListProperty< QQuickItem > *)
static void children_clear(QQmlListProperty< QQuickItem > *)
static qsizetype data_count(QQmlListProperty< QObject > *)
\qmlproperty list<QtObject> QtQuick::Item::data \qmldefault
static QQuickItem * children_at(QQmlListProperty< QQuickItem > *, qsizetype)
static QObject * data_at(QQmlListProperty< QObject > *, qsizetype)
static void children_append(QQmlListProperty< QQuickItem > *, QQuickItem *)
static bool focusNextPrev(QQuickItem *item, bool forward)
QQuickItemPrivate::focusNextPrev focuses the next/prev item in the tab-focus-chain.
static void data_append(QQmlListProperty< QObject > *, QObject *)
static QQuickItemPrivate * get(QQuickItem *item)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
void setSize(const QSizeF &size)
TransformOrigin
\variable QQuickItem::ItemChangeData::realValue The numeric value that has changed: \l {QQuickItem::o...
void setParentItem(QQuickItem *parent)
qreal z
\qmlproperty real QtQuick::Item::z
QPointF mapFromScene(const QPointF &point) const
Maps the given point in the scene's coordinate system to the equivalent point within this item's coor...
bool hasActiveFocus() const
virtual Q_INVOKABLE bool contains(const QPointF &point) const
\qmlmethod bool QtQuick::Item::contains(point point)
QQuickWindow * window() const
Returns the window in which this item is rendered.
qreal width
This property holds the width of this item.
QQuickItem * parentItem() const
void stackAfter(const QQuickItem *)
Moves the specified sibling item to the index after this item within the list of children.
qreal height
This property holds the height of this item.
qreal scale
\qmlproperty real QtQuick::Item::scale This property holds the scale factor for this item.
ItemChange
Used in conjunction with QQuickItem::itemChange() to notify the item about certain types of changes.
@ ItemActiveFocusHasChanged
qreal opacity
\qmlproperty real QtQuick::Item::opacity
bool isAncestorOf(const QQuickItem *child) const
Returns true if this item is an ancestor of child (i.e., if this item is child's parent,...
static QQuickOverlayPrivate * get(QQuickOverlay *overlay)
static QQuickOverlay * overlay(QQuickWindow *window)
void inheritPalette(const QPalette &parentPalette)
QPalette parentPalette(const QPalette &fallbackPalette) const override
static QPalette palette(Scope scope)
static QFont font(Scope scope)
void transition(const QList< QQuickStateAction > &, QQuickTransition *transition, QObject *defaultTarget=nullptr)
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
QQuickItem * contentItem
\qmlattachedproperty Item Window::contentItem
QQuickItem * activeFocusItem
The item which currently has active focus or null if there is no item with active focus.
\inmodule QtCore\reentrant
constexpr qreal height() const noexcept
Returns the height of the rectangle.
constexpr qreal width() const noexcept
Returns the width of the rectangle.
constexpr qreal width() const noexcept
Returns the width.
constexpr qreal height() const noexcept
Returns the height.
\macro QT_RESTRICTED_CAST_FROM_ASCII
The QTouchEvent class contains parameters that describe a touch event.
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
#define Q_LOGGING_CATEGORY(name,...)
#define qCDebug(category,...)
constexpr const T & qMax(const T &a, const T &b)
n void setPosition(void) \n\
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat z
GLint GLint GLint GLint GLint x
[0]
GLfloat GLfloat GLfloat w
[0]
GLint GLsizei GLsizei height
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLfloat GLfloat GLfloat GLfloat h
GLfixed GLfixed GLint GLint GLfixed points
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLenum GLenum GLenum scale
static qreal component(const QPointF &point, unsigned int i)
QQmlContext * qmlContext(const QObject *obj)
Q_QML_EXPORT QQmlInfo qmlWarning(const QObject *me)
QQuickItem * qobject_cast< QQuickItem * >(QObject *o)
#define QStringLiteral(str)
myObject disconnect()
[26]
QFileDialog dialog(this)
[1]