4#include "qplatformdefs.h"
13#if QT_CONFIG(graphicsview)
15#include <QtWidgets/qgraphicsproxywidget.h>
30#if QT_CONFIG(draganddrop)
31#include <private/qdnd_p.h>
33#include "private/qguiapplication_p.h"
36#include "private/qstylesheetstyle_p.h"
37#include "private/qstyle_p.h"
38#if QT_CONFIG(messagebox)
42#include <QtGui/qstylehints.h>
43#include <QtGui/qinputmethod.h>
44#include <QtGui/private/qwindow_p.h>
45#include <QtGui/qpointingdevice.h>
46#include <QtGui/private/qpointingdevice_p.h>
47#include <qpa/qplatformtheme.h>
48#if QT_CONFIG(whatsthis)
49#include <QtWidgets/QWhatsThis>
51#if QT_CONFIG(accessibility)
52#include <QtGui/qaccessible_base.h>
53#include "private/qaccessiblewidgetfactory_p.h"
56#include "private/qkeymapper_p.h"
59#include <private/qthread_p.h>
61#include <QtGui/private/qevent_p.h>
62#include <QtGui/private/qeventpoint_p.h>
63#include <private/qfont_p.h>
65#include <private/qaction_p.h>
74#include "private/qgesturemanager_p.h"
75#include <qpa/qplatformfontdatabase.h>
79#include <qpa/qplatformwindow.h>
81#include <qtwidgets_tracepoints_p.h>
84#include <QtCore/private/qcore_mac_p.h>
94#if QT_CONFIG(messagebox)
104 "#include <qcoreevent.h>"
108Q_TRACE_POINT(qtwidgets, QApplication_notify_exit,
bool consumed,
bool filtered);
111#define CHECK_QAPP_INSTANCE(...) \
112 if (Q_LIKELY(QCoreApplication::instance())) { \
114 qWarning("Must construct a QApplication first."); \
115 return __VA_ARGS__; \
130#ifndef QT_NO_GESTURES
298 return widgetWindow->widget();
316#ifndef QT_NO_STYLE_STYLESHEET
328#if QT_CONFIG(wheelevent)
335#ifdef QT_KEYPAD_NAVIGATION
337QWidget *QApplicationPrivate::oldEditFocus =
nullptr;
378 if (*
argv[
i] !=
'-') {
385 if (strcmp(
arg,
"-qdevel") == 0 || strcmp(
arg,
"-qdebug") == 0) {
387#ifndef QT_NO_STYLE_STYLESHEET
388 }
else if (strcmp(
arg,
"-stylesheet") == 0 &&
i <
argc -1) {
391 }
else if (strncmp(
arg,
"-stylesheet=", 12) == 0) {
395 }
else if (
qstrcmp(
arg,
"-widgetcount") == 0) {
469#if defined(Q_OS_MACOS)
489#if QT_CONFIG(accessibility)
498#if QT_CONFIG(tooltip)
527 qWarning(
"QApplication: invalid style override '%s' passed, ignoring it.\n"
650 return widgetWindow ? widgetWindow->
widget() :
nullptr;
666 d->toolTipWakeUp.stop();
667 d->toolTipFallAsleep.stop();
682 w->destroy(
true,
true);
696 app_fonts()->clear();
701#if QT_CONFIG(draganddrop)
706 d->cleanupMultitouch();
801 for (
const auto &postedEvent : std::as_const(*postedEvents)) {
804 if (postedEvent.receiver != receiver
805 || !postedEvent.
event
806 || postedEvent.event->type() !=
type) {
813 static_cast<QResizeEvent *
>(postedEvent.event)->m_size =
817 static_cast<QMoveEvent *
>(postedEvent.event)->m_pos =
869#ifndef QT_NO_STYLE_STYLESHEET
881 if (!styleSheetStyle)
884 }
else if (styleSheetStyle) {
905 Q_ASSERT(!
"No style available without QApplication!");
914 for (
const auto &
style : styles) {
925 defaultStyle->setParent(
qApp);
929#ifndef QT_NO_STYLE_STYLESHEET
935 defaultStyle->polish(
qApp);
987#ifndef QT_NO_STYLE_STYLESHEET
1020#ifndef QT_NO_STYLE_STYLESHEET
1022 w->setStyleSheet(
w->styleSheet());
1037#ifndef QT_NO_STYLE_STYLESHEET
1039 oldStyleSheetStyle->deref();
1119 if (
w && !widgetPalettes.isEmpty()) {
1120 auto it = widgetPalettes.
constFind(
w->metaObject()->className());
1121 const auto cend = widgetPalettes.constEnd();
1125 if (
w->inherits(
it.key()))
1142 if (
className && !widgetPalettes.isEmpty()) {
1210#if QT_CONFIG(graphicsview)
1211 for (
auto scene : std::as_const(scene_list))
1231 static const ThemedWidget themedWidgets[] = {
1249 for (
const auto themedWidget : themedWidgets) {
1293 const FontHashConstIt cend =
hash->constEnd();
1294 while (
it == cend && metaObj != &QWidget::staticMetaObject) {
1316 if (
it !=
hash->constEnd())
1361#if QT_CONFIG(graphicsview)
1395#if defined(QT_BUILD_INTERNAL)
1406 for (
const QString &style : styles) {
1421 for (
auto *
w :
list) {
1428 for (
int i = 0;
i < windowList.
size(); ++
i)
1448 const auto isTopLevelWidget = [] (
const QWidget *
w) {
1452 std::back_inserter(
list), isTopLevelWidget);
1491#if QT_CONFIG(graphicsview)
1492 if (
focus &&
focus->window()->graphicsProxyWidget())
1520#ifdef QT_KEYPAD_NAVIGATION
1521 if (QApplicationPrivate::keyboardNavigationEnabled()) {
1523 prev->setEditFocus(
false);
1559#if QT_DEPRECATED_SINCE(6,0)
1573bool QApplicationPrivate::tryCloseAllWidgetWindows(
QWindowList *processedWindows)
1577 if (!
w->isVisible() ||
w->data->is_closing)
1588 for (
auto *
w :
list) {
1621 QApplicationPrivate::tryCloseAllWidgetWindows(&processedWindows);
1635#if QT_CONFIG(messagebox)
1661 switch (
e->type()) {
1669 if (
w->data->is_closing)
1686 for (
auto *
w :
list) {
1689 w->d_func()->setLocale_helper(
QLocale(),
true);
1698 if (te->
timerId() ==
d->toolTipWakeUp.timerId()) {
1699 d->toolTipWakeUp.stop();
1700 if (
d->toolTipWidget) {
1701 QWidget *
w =
d->toolTipWidget->window();
1706 while (
w && !showToolTip) {
1707 showToolTip =
w->isActiveWindow();
1708 w =
w->parentWidget();
1709 w =
w ?
w->window() :
nullptr;
1714 if (
e.isAccepted()) {
1715 QStyle *
s =
d->toolTipWidget->style();
1717 d->toolTipFallAsleep.start(sleepDelay,
this);
1721 }
else if (te->
timerId() ==
d->toolTipFallAsleep.timerId()) {
1722 d->toolTipFallAsleep.stop();
1726#if QT_CONFIG(whatsthis)
1738 for (
auto *
w :
list) {
1761 for (
auto *
w :
list) {
1769 for (
int i = 0;
i < windowList.
size(); ++
i) {
1794#if QT_DEPRECATED_SINCE(6,5)
1795void QApplication::setActiveWindow(
QWidget* act)
1808#if QT_CONFIG(graphicsview)
1821 for (
auto *
w :
list) {
1822 if (
w->isVisible() &&
w->isActiveWindow())
1843 for (
auto *
w :
list) {
1844 if (
w->isVisible() &&
w->isActiveWindow())
1858 for (
int i = 0;
i < toBeActivated.
size(); ++
i) {
1860 QApplication::sendSpontaneousEvent(
w, &windowActivate);
1861 QApplication::sendSpontaneousEvent(
w, &activationChange);
1864 for(
int i = 0;
i < toBeDeactivated.
size(); ++
i) {
1866 QApplication::sendSpontaneousEvent(
w, &windowDeactivate);
1867 QApplication::sendSpontaneousEvent(
w, &activationChange);
1876 if (
w &&
w->isVisible() )
1899 while (wnd && !wnd->isTopLevel()) {
1905 if (
parent->handle() &&
parent->handle()->isForeignWindow())
1908 wnd = wnd->parent();
1913 if (tlw->windowHandle() == wnd)
1932 if (focusWindow && focusWidget && focusWindow != focusWidget->
windowHandle()) {
1933 if (
QWidgetWindow *widgetWindow = qobject_cast<QWidgetWindow *>(focusWindow))
1942 if (previous && !qobject_cast<QWidgetWindow *>(previous)) {
1947 if (focusWindow && !qobject_cast<QWidgetWindow *>(focusWindow)) {
1961 bool *wrappingOccurred)
1970 QWidget *test =
f->d_func()->focus_next;
1971 bool seenWindow =
false;
1972 bool focusWidgetAfterWindow =
false;
1973 while (test && test !=
f) {
1981 QWidget *focusProxy = test->d_func()->deepestFocusProxy();
1985 const bool canTakeFocus = (effectiveFocusPolicy(focusProxy ? focusProxy : test)
1986 & focus_flag) == focus_flag;
1987 const bool composites = focusProxy ? (
next ? focusProxy->
isAncestorOf(test)
1990 if (canTakeFocus && !composites
1994 &&
f != focusProxy) {
1997 focusWidgetAfterWindow =
true;
2001 test = test->d_func()->focus_next;
2004 if (wrappingOccurred !=
nullptr)
2005 *wrappingOccurred =
next ? focusWidgetAfterWindow : !focusWidgetAfterWindow;
2046 if (
leave && !sameWindow) {
2050 }
while (!
w->isWindow() && (
w =
w->parentWidget()));
2052 if (enter && !sameWindow) {
2056 }
while (!
w->isWindow() && (
w =
w->parentWidget()));
2062 while (!
e->isWindow() && (
e =
e->parentWidget()))
2065 while (!l->isWindow() && (l = l->parentWidget()))
2069 while (enterDepth > leaveDepth) {
2073 while (leaveDepth > enterDepth) {
2077 while (!wenter->
isWindow() && wenter != wleave) {
2090 for (
int i = 0;
i < leaveList.
size(); ++
i) {
2091 auto *
w = leaveList.
at(
i);
2099 qApp->d_func()->notify_helper(
w, &he);
2108 const QPointF windowPos = std::as_const(enterList).back()->window()->mapFromGlobal(globalPos);
2112 const QPointF localPos =
w->mapFromGlobal(globalPos);
2113 QEnterEvent enterEvent(localPos, windowPos, globalPos);
2119 QMutableEventPoint::setPosition(he.
point(0), localPos);
2120 qApp->d_func()->notify_helper(
w, &he);
2132 QWidget *parentOfLeavingCursor =
nullptr;
2133 for (
int i = 0;
i < leaveList.
size(); ++
i) {
2134 auto *
w = leaveList.
at(
i);
2141 parentOfLeavingCursor =
parent;
2147 if (parentOfLeavingCursor && (!enterOnAlien
2149#if QT_CONFIG(graphicsview)
2150 if (!parentOfLeavingCursor->
window()->graphicsProxyWidget())
2161 QWidget *cursorWidget = enter;
2168#if QT_CONFIG(graphicsview)
2169 if (cursorWidget->
window()->graphicsProxyWidget()) {
2170 QWidgetPrivate::nearestGraphicsProxyWidget(cursorWidget)->
setCursor(cursorWidget->
cursor());
2233 bool block_event =
false;
2247 if (block_event &&
top &&
top->parentWidget() ==
nullptr)
2250 return !block_event;
2263 Qt::MouseButtons buttons,
QWidget *buttonDown,
2270 && !buttonDown && !mouseGrabber) {
2275 alienWidget =
nullptr;
2277 QWidget *receiver = candidate;
2280 mouseGrabber = (buttonDown && !
isBlockedByModal(buttonDown)) ? buttonDown : alienWidget;
2282 if (mouseGrabber && mouseGrabber != candidate) {
2283 receiver = mouseGrabber;
2297 bool spontaneous,
bool onlyDispatchEnterLeave)
2304 if (alienWidget && !isAlien(alienWidget))
2305 alienWidget =
nullptr;
2323 if (!graphicsWidget) {
2329 *buttonDown =
nullptr;
2331 }
else if (lastMouseReceiver && widgetUnderMouse) {
2336 if ((alienWidget && alienWidget != lastMouseReceiver)
2337 || (isAlien(lastMouseReceiver) && !alienWidget)) {
2338 if (activePopupWidget) {
2340 dispatchEnterLeave(alienWidget ? alienWidget : nativeWidget, lastMouseReceiver,
event->globalPosition());
2356 if (!onlyDispatchEnterLeave) {
2358 result = QApplication::sendSpontaneousEvent(receiver,
event);
2370 enter = alienGuard ? alienWidget : nativeWidget;
2375 lastMouseReceiver = enter;
2376 }
else if (!wasLeaveAfterRelease) {
2377 if (activePopupWidget) {
2379 lastMouseReceiver = alienGuard ? alienWidget : (nativeGuard ? nativeWidget :
nullptr);
2409 if (mouseGrabber && mouseGrabber !=
widget)
2413 if (tlw->data->in_destructor || tlw->data->is_closing)
2425 QWidget *widgetUnderCursor = tlw->d_func()->childAt_helper(windowPos,
widget->data->in_destructor);
2426 if (!widgetUnderCursor)
2427 widgetUnderCursor = tlw;
2579 qWarning(
"QApplication::notify: Unexpected null receiver");
2596#ifndef QT_NO_GESTURES
2598 if (
d->gestureManager) {
2599 switch (
e->type()) {
2623 if (
d->gestureManager->filterEvent(
static_cast<QWidget *
>(receiver),
e))
2629 if (
d->gestureManager->filterEvent(receiver,
e))
2638 switch (
e->type()) {
2644 d->closeAllPopups();
2655 d->toolTipFallAsleep.stop();
2658 d->toolTipWakeUp.stop();
2663 switch (
e->type()) {
2666 const int key = keyEvent->
key();
2691 switch (
e->type()) {
2715 res =
d->notify_helper(
w,
e);
2717 if (
res &&
key->isAccepted())
2719 if (!pr ||
w->isWindow())
2722 w =
w->parentWidget();
2734 if (
e->spontaneous()) {
2736 QApplicationPrivate::giveFocusAccordingToFocusPolicy(
w,
e, relpos);
2746 &&
w->rect().contains(relpos)) {
2747 d->toolTipWidget =
w;
2748 d->toolTipPos = relpos;
2750 QStyle *
s =
d->toolTipWidget->style();
2752 d->toolTipWakeUp.start(
d->toolTipFallAsleep.isActive() ? 20 : wakeDelay,
this);
2767 if (!
w->hasMouseTracking()
2770 d->sendThroughApplicationEventFilters(
w,
w == receiver ? mouse : &me);
2774 res =
d->notify_helper(
w,
w == receiver ? mouse : &me);
2777 eventAccepted = (
w == receiver ? mouse : &me)->isAccepted();
2778 if (
res && eventAccepted)
2783 w =
w->parentWidget();
2792 w =
static_cast<QWidget *
>(receiver);
2799 QMutableEventPoint::setPosition(he.
point(0), relpos);
2800 d->notify_helper(
w, &he);
2805 w =
w->parentWidget();
2812#if QT_CONFIG(wheelevent)
2816 if (
w->window() != popup)
2820 QWheelEvent* wheel =
static_cast<QWheelEvent*
>(
e);
2821 if (!wheel->spontaneous()) {
2827 res =
d->notify_helper(
w, wheel);
2832 QPoint relpos = wheel->position().toPoint();
2855 if (QApplicationPrivate::wheel_widget) {
2857 w = QApplicationPrivate::wheel_widget;
2858 relpos =
w->mapFromGlobal(wheel->globalPosition().toPoint());
2867 QApplicationPrivate::wheel_widget =
nullptr;
2870 QApplicationPrivate::wheel_widget =
w;
2874 if (!QApplicationPrivate::wheel_widget)
2875 QApplicationPrivate::wheel_widget =
w;
2878 QApplicationPrivate::giveFocusAccordingToFocusPolicy(
w,
e, relpos);
2883 QWheelEvent we(relpos, wheel->globalPosition(), wheel->pixelDelta(), wheel->angleDelta(), wheel->buttons(),
2884 wheel->modifiers(), phase, wheel->inverted(), wheel->source(), wheel->pointingDevice());
2886 we.setTimestamp(wheel->timestamp());
2891 we.setAccepted(
true);
2892 we.m_spont = wheel->spontaneous() &&
w == receiver;
2893 res =
d->notify_helper(
w, &we);
2894 eventAccepted = we.isAccepted();
2895 if (
res && eventAccepted)
2900 QMutableEventPoint::setPosition(we.point(0), we.position() +
w->pos());
2901 w =
w->parentWidget();
2903 wheel->setAccepted(eventAccepted);
2907#ifndef QT_NO_CONTEXTMENU
2911 bool eventAccepted =
context->isAccepted();
2914 ce.m_spont =
e->spontaneous();
2916 eventAccepted = ((
w == receiver) ?
context : &ce)->isAccepted();
2919 if (
res && eventAccepted)
2925 w =
w->parentWidget();
2927 context->setAccepted(eventAccepted);
2931#if QT_CONFIG(tabletevent)
2935 QTabletEvent *tablet =
static_cast<QTabletEvent*
>(
e);
2936 QPointF relpos = tablet->position();
2937 bool eventAccepted = tablet->isAccepted();
2939 QTabletEvent te(tablet->type(), tablet->pointingDevice(), relpos, tablet->globalPosition(),
2940 tablet->pressure(), tablet->xTilt(), tablet->yTilt(),
2941 tablet->tangentialPressure(), tablet->rotation(), tablet->z(),
2942 tablet->modifiers(), tablet->button(), tablet->buttons());
2943 te.m_spont =
e->spontaneous();
2944 te.setAccepted(
false);
2945 res =
d->notify_helper(
w,
w == receiver ? tablet : &te);
2946 eventAccepted = ((
w == receiver) ? tablet : &te)->isAccepted();
2948 if (
res && eventAccepted)
2954 w =
w->parentWidget();
2956 tablet->setAccepted(eventAccepted);
2961#if QT_CONFIG(tooltip) || QT_CONFIG(whatsthis)
2967 bool eventAccepted =
help->isAccepted();
2970 he.m_spont =
e->spontaneous();
2971 res =
d->notify_helper(
w,
w == receiver ?
help : &he);
2973 eventAccepted = (
w == receiver ?
help : &he)->isAccepted();
2974 if (
res && eventAccepted)
2980 w =
w->parentWidget();
2982 help->setAccepted(eventAccepted);
2986#if QT_CONFIG(statustip) || QT_CONFIG(whatsthis)
2990 res =
d->notify_helper(
w,
e);
2991 if (
res &&
e->isAccepted())
2995 w =
w->parentWidget();
3000#if QT_CONFIG(draganddrop)
3002 QDragEnterEvent *dragEvent =
static_cast<QDragEnterEvent *
>(
e);
3003#if QT_CONFIG(graphicsview)
3006 const auto &extra =
w->window()->d_func()->extra;
3007 if (extra && extra->proxyWidget) {
3008 res =
d->notify_helper(
w, dragEvent);
3013 if (
w->isEnabled() &&
w->acceptDrops()) {
3014 res =
d->notify_helper(
w, dragEvent);
3015 if (
res && dragEvent->isAccepted()) {
3022 dragEvent->m_pos =
w->mapToParent(dragEvent->m_pos);
3023 w =
w->parentWidget();
3030#if QT_CONFIG(graphicsview)
3033 const auto &extra =
w->window()->d_func()->extra;
3034 bool isProxyWidget = extra && extra->proxyWidget;
3042 QDropEvent *dragEvent =
static_cast<QDropEvent *
>(
e);
3044 while (origReceiver &&
w != origReceiver) {
3045 dragEvent->m_pos = origReceiver->
mapToParent(dragEvent->m_pos);
3049 res =
d->notify_helper(
w,
e);
3051#if QT_CONFIG(graphicsview)
3062 bool eventAccepted = touchEvent->isAccepted();
3065 if (acceptTouchEvents &&
e->spontaneous()
3067 const QPoint localPos = touchEvent->
points()[0].position().toPoint();
3068 QApplicationPrivate::giveFocusAccordingToFocusPolicy(
w,
e, localPos);
3071#ifndef QT_NO_GESTURES
3078 touchEvent->setTarget(
w);
3079 touchEvent->setAccepted(acceptTouchEvents);
3081 res = acceptTouchEvents &&
d->notify_helper(
w, touchEvent);
3082 eventAccepted = touchEvent->isAccepted();
3089 touchEvent->m_spont =
false;
3090 if (
res && eventAccepted) {
3092 d->activateImplicitTouchGrab(
w, touchEvent);
3095#ifndef QT_NO_GESTURES
3097 gesturePendingWidget =
w;
3103 w =
w->parentWidget();
3104 touchEvent->setTarget(
w);
3105 for (
int i = 0;
i < touchEvent->pointCount(); ++
i) {
3106 auto &pt = touchEvent->
point(
i);
3107 QMutableEventPoint::setPosition(pt, pt.position() +
offset);
3111#ifndef QT_NO_GESTURES
3112 if (!eventAccepted && !gesturePendingWidget.
isNull()) {
3119 touchEvent->setAccepted(eventAccepted);
3128 res =
d->notify_helper(
w,
e);
3137#ifndef QT_NO_GESTURES
3141 res =
d->notify_helper(
w,
e);
3142 if (
res &&
e->isAccepted())
3146 w =
w->parentWidget();
3154 bool eventAccepted = gestureEvent->
isAccepted();
3155 bool wasAccepted = eventAccepted;
3160 for (
int i = 0;
i < allGestures.
size();) {
3177 ge.
t = gestureEvent->
t;
3179 ge.m_accept = wasAccepted;
3180 ge.m_accepted = gestureEvent->m_accepted;
3181 res =
d->notify_helper(
w, &ge);
3182 gestureEvent->m_spont =
false;
3184 for (
int i = 0;
i < gestures.
size(); ++
i) {
3190 gestureEvent->m_targetWidgets[
g->gestureType()] =
w;
3203 w =
w->parentWidget();
3205 for (
QGesture *
g : std::as_const(allGestures))
3207 gestureEvent->m_accept =
false;
3213 typedef void (*RegisterTouchWindowFn)(
QWindow *, bool);
3216 RegisterTouchWindowFn registerTouchWindow =
reinterpret_cast<RegisterTouchWindowFn
>
3218 if (registerTouchWindow)
3219 registerTouchWindow(
w->window()->windowHandle(),
true);
3221 res =
d->notify_helper(receiver,
e);
3225 RegisterTouchWindowFn registerTouchWindow =
reinterpret_cast<RegisterTouchWindowFn
>
3227 if (registerTouchWindow)
3228 registerTouchWindow(
w->window()->windowHandle(),
false);
3230 res =
d->notify_helper(receiver,
e);
3234 res =
d->notify_helper(receiver,
e);
3238 res =
d->notify_helper(receiver,
e);
3250 Q_TRACE(QApplication_notify_entry, receiver,
e,
e->type());
3251 bool consumed =
false;
3252 bool filtered =
false;
3253 Q_TRACE_EXIT(QApplication_notify_exit, consumed, filtered);
3257 && receiver->d_func()->threadData.loadRelaxed()->
thread.loadAcquire() ==
mainThread()
3266#if !defined(QT_NO_CURSOR)
3287 consumed = receiver->
event(
e);
3366 auto mousePressPos = devPriv->pointById(0)->eventPoint.globalPressPosition();
3432#ifdef QT_KEYPAD_NAVIGATION
3442 QApplicationPrivate::navigationMode =
mode;
3454 return QApplicationPrivate::navigationMode;
3489 for (
QWidget *topLevel : topLevels)
3576#if QT_CONFIG(wheelevent)
3577int QApplication::wheelScrollLines()
3582void QApplication::setWheelScrollLines(
int lines)
3679 return QGuiApplication::sendSpontaneousEvent(receiver,
event);
3688 switch (
event->type()) {
3693 if (setFocusOnRelease)
3698 if (!setFocusOnRelease)
3714 while (focusWidget) {
3717 && QApplicationPrivate::shouldSetFocus(focusWidget, focusPolicy)) {
3726 if (focusWidget->d_func()->extra && focusWidget->d_func()->extra->focus_proxy)
3727 f = focusWidget->d_func()->extra->focus_proxy;
3733 localPos += focusWidget->
pos();
3741 while (
f->d_func()->extra &&
f->d_func()->extra->focus_proxy)
3742 f =
f->d_func()->extra->focus_proxy;
3753 bool containsPress =
false;
3755 for (
int i = 0;
i < touchEvent->pointCount(); ++
i) {
3756 auto &pt = touchEvent->
point(
i);
3760 containsPress =
true;
3762 return containsPress;
3786 int closestTouchPointId = -1;
3787 QObject *closestTarget =
nullptr;
3788 qreal closestDistance = 0;
3791 const auto &pt = epd.eventPoint;
3792 if (pt.id() != touchPoint.
id()) {
3793 qreal dx = globalPos.
x() - pt.globalPosition().x();
3794 qreal dy = globalPos.
y() - pt.globalPosition().y();
3796 if (closestTouchPointId == -1 ||
distance < closestDistance) {
3797 closestTouchPointId = pt.id();
3803 return static_cast<QWidget *
>(closestTarget);
3815 for (
int i = 0;
i < touchEvent->pointCount(); ++
i) {
3816 auto &ep = touchEvent->
point(
i);
3818 QMutableEventPoint::setTarget(ep,
widget);
3831 auto touchPoints = te->
points();
3832 for (
auto &touchPoint : touchPoints) {
3848 target =
window->childAt(
window->mapFromGlobal(touchPoint.globalPosition().toPoint()));
3853 bool usingClosestWidget =
false;
3855 QWidget *closestWidget =
d->findClosestTouchPointTarget(
device, touchPoint);
3860 usingClosestWidget =
true;
3867 QMutableEventPoint::setTarget(touchPoint,
target);
3880 if (touchPoints.count() == 1
3886 StatesAndTouchPoints &maskAndPoints = widgetsNeedingEvents[targetWidget];
3888 maskAndPoints.second.append(touchPoint);
3891 if (widgetsNeedingEvents.
isEmpty())
3894 bool accepted =
false;
3903 switch (
it.value().first) {
3921 touchEvent.setTimestamp(te->
timestamp());
3922 touchEvent.setTarget(
widget);
3927 switch (touchEvent.type()) {
3934 if (
res && touchEvent.isAccepted()) {
3943#ifndef QT_NO_GESTURES
3949 if (
res && touchEvent.isAccepted())
3964 touchEvent.setTimestamp(timestamp);
3969 const auto &pt = epd.eventPoint;
3975 widItEnd = widgetsNeedingCancel.
constEnd(); widIt != widItEnd; ++widIt) {
3977 touchEvent.setTarget(
widget);
3978 QApplication::sendSpontaneousEvent(
widget, &touchEvent);
3989#if QT_CONFIG(draganddrop)
3990void QApplicationPrivate::notifyDragStarted(
const QDrag *drag)
3992 QGuiApplicationPrivate::notifyDragStarted(drag);
4002#ifndef QT_NO_GESTURES
4028#include "moc_qapplication.cpp"
IOBluetoothDevice * device
static void(* setWidgetParent)(QObject *, QObject *)
virtual void startingUp()
static QWidget * pickMouseReceiver(QWidget *candidate, const QPoint &windowPos, QPoint *pos, QEvent::Type type, Qt::MouseButtons buttons, QWidget *buttonDown, QWidget *alienWidget)
virtual void notifyLayoutDirectionChange() override
static void initializeWidgetPalettesFromTheme()
static QApplicationPrivate * instance()
void handlePaletteChanged(const char *className=nullptr) override
void sendSyntheticEnterLeave(QWidget *widget)
static QWidget * desktop()
static QWidget * focus_widget
static QPointer< QWidget > leaveAfterRelease
QGestureManager * gestureManager
static void initializeWidgetFontHash()
bool notify_helper(QObject *receiver, QEvent *e)
virtual void notifyActiveWindowChange(QWindow *) override
static QWidget * hidden_focus_widget
QPalette basePalette() const override
static QWidget * active_window
static void setFocusWidget(QWidget *focus, Qt::FocusReason reason)
void closePopup(QWidget *popup)
static PaletteHash widgetPalettes
static int enabledAnimations
static QWidget * focusNextPrevChild_helper(QWidget *toplevel, bool next, bool *wrappingOccurred=nullptr)
internal Helper function that returns the new focus widget, but does not set the focus reason.
static QString styleSheet
Qt::WindowModality defaultModality() const override
void initializeMultitouch()
QPixmap applyQIconStyleHelper(QIcon::Mode mode, const QPixmap &base) const override
static bool inPopupMode()
static QWindow * windowForWidget(const QWidget *widget)
void initializeMultitouch_sys()
void handleThemeChanged() override
void openPopup(QWidget *popup)
static QWidgetList * popupWidgets
void activateImplicitTouchGrab(QWidget *widget, QTouchEvent *touchBeginEvent, ImplicitTouchGrabMode grabMode=GrabAcceptedPoints)
void notifyWindowIconChanged() override
QWidget * findClosestTouchPointTarget(const QPointingDevice *device, const QEventPoint &touchPoint)
bool closeAllPopups() override
static void dispatchEnterLeave(QWidget *enter, QWidget *leave, const QPointF &globalPosF)
static QString desktopStyleKey()
static bool isBlockedByModal(QWidget *widget)
static QStyle * app_style
void createEventDispatcher() override
static QWidget * main_widget
static bool translateRawTouchEvent(QWidget *widget, const QTouchEvent *touchEvent)
static bool sendMouseEvent(QWidget *receiver, QMouseEvent *event, QWidget *alienWidget, QWidget *native, QWidget **buttonDown, QPointer< QWidget > &lastMouseReceiver, bool spontaneous=true, bool onlyDispatchEnterLeave=false)
static void setSystemFont(const QFont &font)
static bool autoSipEnabled
static bool updateTouchPointsForWidget(QWidget *widget, QTouchEvent *touchEvent)
static void setActiveWindow(QWidget *act)
static bool tryModalHelper(QWidget *widget, QWidget **rettop=nullptr)
bool windowNeverBlocked(QWindow *window) const override
QApplicationPrivate(int &argc, char **argv)
void initialize()
Initializes the QApplication object, called from the constructors.
static void translateTouchCancel(const QPointingDevice *device, ulong timestamp)
void cleanupMultitouch_sys()
The QApplication class manages the GUI application's control flow and main settings.
static QStyle * style()
Returns the application's style object.
static void setStyle(QStyle *)
Sets the application's GUI style to style.
static void aboutQt()
Displays a simple message box about Qt.
static void closeAllWindows()
Closes all top-level windows.
static void beep()
Sounds the bell, using the default volume and sound.
virtual ~QApplication()
Cleans up any window system resources that were allocated by this application.
static bool isEffectEnabled(Qt::UIEffect)
Returns true if effect is enabled; otherwise returns false.
static void setPalette(const QPalette &, const char *className=nullptr)
Changes the application palette to palette.
static QWidget * widgetAt(const QPoint &p)
Returns the widget at global screen position point, or \nullptr if there is no Qt widget there.
static void alert(QWidget *widget, int duration=0)
static QPalette palette()
Returns the current application palette.
static QWidget * activeModalWidget()
Returns the active modal widget.
static QWidget * topLevelAt(const QPoint &p)
Returns the top-level widget at the given point; returns \nullptr if there is no such widget.
static QWidget * focusWidget()
Returns the application widget that has the keyboard input focus, or \nullptr if no widget in this ap...
static QWidgetList topLevelWidgets()
Returns a list of the top-level widgets (windows) in the application.
static QFont font()
Returns the default application font.
bool autoSipEnabled
toggles automatic SIP (software input panel) visibility
static void setEffectEnabled(Qt::UIEffect, bool enable=true)
Enables the UI effect effect if enable is true, otherwise the effect will not be used.
static QWidget * activePopupWidget()
Returns the active popup widget.
static int exec()
Enters the main event loop and waits until exit() is called, then returns the value that was set to e...
int startDragTime
the time in milliseconds that a mouse button must be held down before a drag and drop operation will ...
static void setCursorFlashTime(int)
bool qt_sendSpontaneousEvent(QObject *receiver, QEvent *event)
\macro qApp
int doubleClickInterval
the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks
int cursorFlashTime
the text cursor's flash (blink) time in milliseconds
static void setStartDragTime(int ms)
int startDragDistance
the minimum distance required for a drag and drop operation to start.
bool event(QEvent *) override
\reimp
void setAutoSipEnabled(const bool enabled)
bool notify(QObject *, QEvent *) override
\reimp
static void setStartDragDistance(int l)
static QWidget * activeWindow()
Returns the application top-level window that has the keyboard input focus, or \nullptr if no applica...
bool compressEvent(QEvent *, QObject *receiver, QPostEventList *) override
int keyboardInputInterval
the time limit in milliseconds that distinguishes a key press from two consecutive key presses
void setStyleSheet(const QString &sheet)
QString styleSheet
the application style sheet
static void setKeyboardInputInterval(int)
static void setFont(const QFont &, const char *className=nullptr)
Changes the default application font to font.
static void setDoubleClickInterval(int)
static QWidgetList allWidgets()
Returns a list of all the widgets in the application.
static QColormap instance(int screen=-1)
static void setEventSpontaneous(QEvent *e, bool spontaneous)
QCoreApplicationPrivate::Type application_type
static bool is_app_closing
bool sendThroughApplicationEventFilters(QObject *, QEvent *)
static bool sendThroughObjectEventFilters(QObject *, QEvent *)
static bool is_app_running
static void checkReceiverThread(QObject *receiver)
static QAbstractEventDispatcher * eventDispatcher
static bool testAttribute(uint flag)
static QThread * mainThread()
static bool threadRequiresCoreApplication()
void * resolveInterface(const char *name, int revision) const
\macro Q_DECLARE_TR_FUNCTIONS(context)
static bool sendEvent(QObject *receiver, QEvent *event)
Sends event event directly to receiver receiver, using the notify() function.
bool event(QEvent *) override
\reimp
static void setAttribute(Qt::ApplicationAttribute attribute, bool on=true)
Sets the attribute attribute if on is true; otherwise clears the attribute.
static QCoreApplication * instance() noexcept
Returns a pointer to the application's QCoreApplication (or QGuiApplication/QApplication) instance.
friend class QApplication
static void postEvent(QObject *receiver, QEvent *event, int priority=Qt::NormalEventPriority)
static QPoint pos()
Returns the position of the cursor (hot spot) of the primary screen in global screen coordinates.
void setCurrentTarget(QObject *target, bool dropped=false)
static QDragManager * self()
The QEventPoint class provides information about a point in a QPointerEvent.
QPointF globalPosition
the global position of this point.
int id
the ID number of this event point.
State
Specifies the state of this event point.
bool spontaneous() const
Returns true if the event originated outside the application (a system event); otherwise returns fals...
Type
This enum type defines the valid event types in Qt.
@ ApplicationPaletteChange
@ CloseSoftwareInputPanel
@ ApplicationLayoutDirectionChange
@ ApplicationWindowIconChange
@ RequestSoftwareInputPanel
Type type() const
Returns the event type.
const mapped_container_type & values() const noexcept
The QFocusEvent class contains event parameters for widget focus events.
\reentrant \inmodule QtGui
bool isCopyOf(const QFont &) const
Returns true if this font and f are copies of each other, i.e.
The QGestureEvent class provides the description of triggered gestures.
bool isAccepted(QGesture *) const
Returns true if the gesture is accepted; otherwise returns false.
QList< QGesture * > gestures() const
Returns all gestures that are delivered in the event.
void setAccepted(QGesture *, bool)
Sets the accept flag of the given gesture object to the specified value.
static bool gesturePending(QObject *o)
static QGestureManager * instance(InstanceCreation ic=ForceCreation)
The QGesture class represents a gesture, containing properties that describe the corresponding user i...
static bool obey_desktop_settings
static void updatePalette()
static QPlatformIntegration * platformIntegration()
static QString styleOverride
bool isWindowBlocked(QWindow *window, QWindow **blockingWindow=nullptr) const
static void captureGlobalModifierState(QEvent *e)
virtual void handlePaletteChanged(const char *className=nullptr)
static QWindow * focus_window
void createEventDispatcher() override
Called from QCoreApplication::init()
virtual void handleThemeChanged()
static bool sendQWindowEventToQPlatformWindow(QWindow *window, QEvent *event)
QWindowList modalWindowList
static QPlatformTheme * platformTheme()
static QPlatformNativeInterface * platformNativeInterface()
static QWindowList topLevelWindows()
Returns a list of the top-level windows in the application.
static QWindow * modalWindow()
Returns the most recently shown modal window.
static QWindow * topLevelAt(const QPoint &pos)
Returns the top level window at the given position pos, if any.
static void setFont(const QFont &)
Changes the default application font to font.
static QPalette palette()
Returns the current application palette.
static void setPalette(const QPalette &pal)
Changes the application palette to pal.
static QFont font()
Returns the default application font.
bool compressEvent(QEvent *, QObject *receiver, QPostEventList *) override
static QStyleHints * styleHints()
Returns the application's style hints.
static QInputMethod * inputMethod()
returns the input method.
static Qt::KeyboardModifiers keyboardModifiers()
Returns the current state of the modifier keys on the keyboard.
bool event(QEvent *) override
\reimp
static bool desktopSettingsAware()
Returns true if Qt is set to use the system's standard colors, fonts, etc.; otherwise returns false.
static int exec()
Enters the main event loop and waits until exit() is called, and then returns the value that was set ...
const_iterator constEnd() const noexcept
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the ...
const_iterator constBegin() const noexcept
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first item in the hash.
friend class const_iterator
void clear() noexcept(std::is_nothrow_destructible< Node >::value)
Removes all items from the hash and frees up all memory used by it.
bool isEmpty() const noexcept
Returns true if the hash contains no items; otherwise returns false.
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
The QHelpEvent class provides an event that is used to request helpful information about a particular...
Mode
This enum type describes the mode for which a pixmap is intended to be used.
The QKeyEvent class describes a key event.
int count() const
Returns the number of keys involved in this event.
Qt::KeyboardModifiers modifiers() const
Returns the keyboard modifier flags that existed immediately after the event occurred.
QString text() const
Returns the Unicode text that this key generated.
bool isAutoRepeat() const
Returns true if this event comes from an auto-repeating key; returns false if it comes from an initia...
int key() const
Returns the code of the key that was pressed or released.
The QLayout class is the base class of geometry managers.
void widgetEvent(QEvent *)
qsizetype size() const noexcept
bool isEmpty() const noexcept
void removeAt(qsizetype i)
const T & constLast() const noexcept
bool removeOne(const AT &t)
const_reference at(qsizetype i) const noexcept
const_reverse_iterator crbegin() const noexcept
const_iterator constBegin() const noexcept
qsizetype removeAll(const AT &t)
void append(parameter_type t)
const_iterator constEnd() const noexcept
const_iterator ConstIterator
const_reverse_iterator crend() const noexcept
iterator find(const Key &key)
static void aboutQt(QWidget *parent, const QString &title=QString())
Displays a simple message box about Qt, with the given title and centered over parent (if parent is n...
Qt::MouseEventSource source() const
The QMoveEvent class contains event parameters for move events.
const QPoint & pos() const
Returns the new position of the widget.
static QObject * target(const QEventPoint &p)
void setDoubleClick(bool d=true)
static QMutableSinglePointEvent * from(QSinglePointEvent *e)
static QMutableTouchEvent * from(QTouchEvent *e)
bool isWindowType() const
Returns true if the object is a window; otherwise returns false.
QObject * parent() const
Returns a pointer to the parent object.
virtual bool event(QEvent *event)
This virtual function receives events to an object and should return true if the event e was recogniz...
void setParent(QObject *parent)
Makes the object a child of parent.
QThread * thread() const
Returns the thread in which the object lives.
bool inherits(const char *classname) const
Returns true if this object is an instance of a class that inherits className or a QObject subclass t...
bool isWidgetType() const
Returns true if the object is a widget; otherwise returns false.
The QPalette class contains color groups for each widget state.
void setResolveMask(ResolveMask mask)
ResolveMask resolveMask() const
static void clear()
Removes all pixmaps from the cache.
Returns a copy of the pixmap that is transformed using the given transformation transform and transfo...
\inmodule QtCore\reentrant
constexpr qreal x() const noexcept
Returns the x coordinate of this point.
constexpr qreal y() const noexcept
Returns the y coordinate of this point.
constexpr QPoint toPoint() const
Rounds the coordinates of this point to the nearest integer, and returns a QPoint object with the rou...
\inmodule QtCore\reentrant
constexpr int x() const noexcept
Returns the x coordinate of this point.
constexpr int y() const noexcept
Returns the y coordinate of this point.
const QPointingDevice * pointingDevice() const
Returns the source device from which this event originates.
void setTimestamp(quint64 timestamp) override
QEventPoint & point(qsizetype i)
Returns a QEventPoint reference for the point at index i.
virtual void setAccepted(bool accepted) override
\reimp
const QList< QEventPoint > & points() const
Returns a list of points in this pointer event.
bool isNull() const
Returns true if the referenced object has been destroyed or if there is no referenced object; otherwi...
QObject * firstActiveTarget() const
EventPointMap activePoints
static QPointingDevicePrivate * get(QPointingDevice *q)
The QPointingDevice class describes a device from which mouse, touch or tablet events originate.
static const QPointingDevice * primaryPointingDevice(const QString &seatName=QString())
Returns the primary pointing device (the core pointer, traditionally assumed to be a mouse) on the gi...
\inmodule QtCore\reentrant
bool contains(const QRectF &r) const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
bool contains(const QRect &r, bool proper=false) const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
The QRegion class specifies a clip region for a painter.
bool isEmpty() const
Returns true if the region is empty; otherwise returns false.
The QResizeEvent class contains event parameters for resize events.
const QSize & size() const
Returns the new size of the widget.
QList< T > values() const
const_iterator ConstIterator
const_iterator constBegin() const noexcept
const_iterator constEnd() const noexcept
const_iterator constFind(const T &value) const
iterator insert(const T &value)
QPointF globalPosition() const
Returns the position of the point in this event on the screen or virtual desktop.
QPointF position() const
Returns the position of the point in this event, relative to the widget or item that received the eve...
QPointF scenePosition() const
Returns the position of the point in this event, relative to the window or scene.
Qt::MouseButton button() const
Returns the button that caused the event.
Qt::MouseButtons buttons() const
Returns the button state when the event was generated.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString fromLocal8Bit(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void clear()
Clears the contents of the string and makes it null.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
QString toLower() const &
QString & append(QChar c)
static QStringList keys()
Returns the list of valid keys, i.e.
static QStyle * create(const QString &)
void setKeyboardInputInterval(int keyboardInputInterval)
Sets the keyboardInputInterval.
void setWheelScrollLines(int scrollLines)
Sets the wheelScrollLines.
int keyboardInputInterval
the time limit, in milliseconds, that distinguishes a key press from two consecutive key presses.
void setStartDragDistance(int startDragDistance)
Sets the startDragDistance.
int startDragTime
the time, in milliseconds, that a mouse button must be held down before a drag and drop operation wil...
int startDragDistance
the distance, in pixels, that the mouse must be moved with a button held down before a drag and drop ...
bool setFocusOnTouchRelease
the event that should set input focus on focus objects.
Qt::TabFocusBehavior tabFocusBehavior
The focus behavior on press of the tab key.
void setCursorFlashTime(int cursorFlashTime)
Sets the cursorFlashTime.
int mouseDoubleClickInterval
the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks.
int cursorFlashTime
the text cursor's flash (blink) time in milliseconds.
int wheelScrollLines
Number of lines to scroll by default for each wheel click.
void setMouseDoubleClickInterval(int mouseDoubleClickInterval)
Sets the mouseDoubleClickInterval.
void setStartDragTime(int startDragTime)
Sets the startDragDragTime.
The QStyleOption class stores the parameters used by QStyle functions.
void repolish(QWidget *widget)
The QStyle class is an abstract base class that encapsulates the look and feel of a GUI.
virtual void polish(QWidget *widget)
Initializes the appearance of the given widget.
virtual QPalette standardPalette() const
Returns the style's standard palette.
@ SH_Widget_ShareActivation
@ SH_ToolTip_FallAsleepDelay
virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const =0
Returns a copy of the given pixmap, styled to conform to the specified iconMode and taking into accou...
virtual void unpolish(QWidget *widget)
Uninitialize the given {widget}'s appearance.
QEventPoint & point(int touchId)
QMap< int, QEventPoint > points
static QThread * currentThread()
int timerId() const
Returns the unique timer identifier, which is the same identifier as returned from QObject::startTime...
The QTouchEvent class contains parameters that describe a touch event.
static void enterWhatsThisMode()
This function switches the user interface into "What's This?" mode.
static QWindowPrivate * get(QWindow *window)
QHash< int, QWidget * > hash
[35multi]
QSet< QString >::iterator it
Combined button and popup list for selecting options.
@ NavigationModeKeypadTabOrder
@ WA_TouchPadAcceptSingleTouchEvents
@ WA_TransparentForMouseEvents
@ WA_WState_AcceptedTouchBeginEvent
@ ActiveWindowFocusReason
Q_CORE_EXPORT void qt_call_post_routines()
static int uiEffectToFlag(Qt::UIEffect effect)
bool Q_WIDGETS_EXPORT qt_tab_all_widgets()
static void initResources()
void qt_init_tooltip_palette()
bool qt_replay_popup_mouse_event
static void ungrabMouseForPopup(QWidget *popup)
static void ungrabKeyboardForPopup(QWidget *popup)
FontHash * qt_app_fonts_hash()
bool qt_popup_down_closed
Q_WIDGETS_EXPORT bool qt_tryModalHelper(QWidget *widget, QWidget **rettop)
int qt_antialiasing_threshold
QWidget * qt_desktopWidget
Q_WIDGETS_EXPORT QWidget * qt_button_down
void qRegisterWidgetsVariant()
static void grabForPopup(QWidget *popup)
QPointer< QWidget > qt_last_mouse_receiver
QWidget * qt_tlw_for_window(QWindow *wnd)
Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text=QString(), bool autorep=false, ushort count=1)
bool qt_try_modal(QWidget *widget, QEvent::Type type)
Q_GUI_EXPORT bool qt_is_tty_app
void qt_qpa_set_cursor(QWidget *w, bool force)
#define QByteArrayLiteral(str)
Q_CORE_EXPORT int qstrcmp(const char *str1, const char *str2)
std::pair< T1, T2 > QPair
void Q_CORE_EXPORT qt_call_post_routines()
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
bool qIsInf(qfloat16 f) noexcept
#define Q_GLOBAL_STATIC(TYPE, NAME,...)
Q_CONSTINIT Q_GUI_EXPORT bool qt_is_tty_app
#define CHECK_QAPP_INSTANCE(...)
GLint GLint GLint GLint GLint x
[0]
GLfloat GLfloat GLfloat w
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLdouble GLdouble GLdouble GLdouble top
GLenum GLenum GLsizei count
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLsizei GLsizei GLfloat distance
GLenum GLuint GLintptr offset
static void initResources()
#define qPrintable(string)
QStyleSheetStyle * qt_styleSheet(QStyle *style)
Q_CORE_EXPORT QByteArray qgetenv(const char *varName)
Q_CORE_EXPORT bool qEnvironmentVariableIsSet(const char *varName) noexcept
Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept
#define Q_TRACE_METADATA(provider, metadata)
#define Q_TRACE_PREFIX(provider, prefix)
#define Q_TRACE_EXIT(x,...)
#define Q_TRACE_POINT(provider, tracepoint,...)
#define Q_INIT_RESOURCE(name)
QT_BEGIN_NAMESPACE typedef QHash< WId, QWidget * > QWidgetMapper
QSet< QWidget * > QWidgetSet
QList< QWidget * > QWidgetList
static QPalette toolTipPalette(const QPalette &systemPalette, bool light)
QPointer< QWindow > qt_last_mouse_receiver
Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text=QString(), bool autorep=false, ushort count=1)
const char className[16]
[1]
QTextStream out(stdout)
[7]
QList< QWidget * > widgets
[11]
QGraphicsOpacityEffect * effect
the effect attached to this item
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent