diff options
Diffstat (limited to 'src/testlib/qtestaccessible.h')
-rw-r--r-- | src/testlib/qtestaccessible.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/testlib/qtestaccessible.h b/src/testlib/qtestaccessible.h index 5db348fd22..fcf95ee62b 100644 --- a/src/testlib/qtestaccessible.h +++ b/src/testlib/qtestaccessible.h @@ -108,14 +108,14 @@ public: qWarning("Timeout waiting for accessibility event."); return false; } - const bool res = *eventList().first() == *ev; + const bool res = *eventList().constFirst() == *ev; if (!res) qWarning("%s", qPrintable(msgAccessibilityEventListMismatch(eventList(), ev))); delete eventList().takeFirst(); return res; } static bool containsEvent(QAccessibleEvent *event) { - for (const QAccessibleEvent *ev : qAsConst(eventList())) { + for (const QAccessibleEvent *ev : std::as_const(eventList())) { if (*ev == *event) return true; } @@ -150,8 +150,8 @@ private: static void updateHandler(QAccessibleEvent *event) { auto ev = copyEvent(event); - if (ev->object()) { - QObject::connect(ev->object(), &QObject::destroyed, [&, ev](){ + if (auto obj = ev->object()) { + QObject::connect(obj, &QObject::destroyed, obj, [&, ev](){ auto index= eventList().indexOf(ev); if (index == -1) return; @@ -228,6 +228,17 @@ private: newEvent->setLastRow(oldEvent->lastRow()); newEvent->setLastColumn(oldEvent->lastColumn()); ev = newEvent; + } else if (event->type() == QAccessible::Announcement) { + QAccessibleAnnouncementEvent *oldEvent = + static_cast<QAccessibleAnnouncementEvent *>(event); + QAccessibleAnnouncementEvent *newEvent; + if (event->object()) + newEvent = new QAccessibleAnnouncementEvent(event->object(), oldEvent->message()); + else + newEvent = new QAccessibleAnnouncementEvent(event->accessibleInterface(), + oldEvent->message()); + newEvent->setPriority(oldEvent->priority()); + ev = newEvent; } else { if (event->object()) ev = new QAccessibleEvent(event->object(), event->type()); |