Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qaccessiblequickview.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 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 <QtGui/qguiapplication.h>
7
8#include <QtQuick/qquickitem.h>
9#include <QtQuick/private/qquickitem_p.h>
10
12
13#if QT_CONFIG(accessibility)
14
16
17QAccessibleQuickWindow::QAccessibleQuickWindow(QQuickWindow *object)
18 :QAccessibleObject(object)
19{
20}
21
22QList<QQuickItem *> QAccessibleQuickWindow::rootItems() const
23{
24 if (QQuickItem *ci = window() ? window()->contentItem() : nullptr)
25 return accessibleUnignoredChildren(ci);
26 return QList<QQuickItem *>();
27}
28
29int QAccessibleQuickWindow::childCount() const
30{
31 return rootItems().size();
32}
33
34QAccessibleInterface *QAccessibleQuickWindow::parent() const
35{
36 // FIXME: for now we assume to be a top level window...
37 return QAccessible::queryAccessibleInterface(qApp);
38}
39
40QAccessibleInterface *QAccessibleQuickWindow::child(int index) const
41{
42 const QList<QQuickItem*> &kids = rootItems();
43 if (index >= 0 && index < kids.size())
44 return QAccessible::queryAccessibleInterface(kids.at(index));
45 return nullptr;
46}
47
48QAccessibleInterface *QAccessibleQuickWindow::focusChild() const
49{
50 QObject *focusObject = window() ? window()->focusObject() : nullptr;
51 if (focusObject) {
52 QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(focusObject);
53 if (!iface || iface == this || !iface->focusChild())
54 return iface;
55 return iface->focusChild();
56 }
57 return nullptr;
58}
59
60QAccessible::Role QAccessibleQuickWindow::role() const
61{
62 return QAccessible::Window;
63}
64
65QAccessible::State QAccessibleQuickWindow::state() const
66{
69 st.active = true;
70 if (!window() || !window()->isVisible())
71 st.invisible = true;
72 return st;
73}
74
75QRect QAccessibleQuickWindow::rect() const
76{
77 if (!window())
78 return {};
79 return QRect(window()->x(), window()->y(), window()->width(), window()->height());
80}
81
82QString QAccessibleQuickWindow::text(QAccessible::Text text) const
83{
84 if (!window())
85 return {};
86#ifdef Q_ACCESSIBLE_QUICK_ITEM_ENABLE_DEBUG_DESCRIPTION
87 if (text == QAccessible::DebugDescription) {
88 return QString::fromLatin1(object()->metaObject()->className()) ;
89 }
90#else
92#endif
93 return window()->title();
94}
95
96QAccessibleInterface *QAccessibleQuickWindow::childAt(int x, int y) const
97{
99 for (int i = childCount() - 1; i >= 0; --i) {
100 QAccessibleInterface *childIface = child(i);
101 if (childIface && !childIface->state().invisible) {
102 if (QAccessibleInterface *iface = childIface->childAt(x, y))
103 return iface;
104 if (childIface->rect().contains(x, y))
105 return childIface;
106 }
107 }
108 return nullptr;
109}
110
111int QAccessibleQuickWindow::indexOfChild(const QAccessibleInterface *iface) const
112{
113 int i = -1;
114 if (iface) {
115 const QList<QQuickItem *> &roots = rootItems();
116 i = roots.size() - 1;
117 while (i >= 0) {
118 if (iface->object() == roots.at(i))
119 break;
120 --i;
121 }
122 }
123 return i;
124}
125
127
128#endif // accessibility
\inmodule QtGui
static QWindow * focusWindow()
Returns the QWindow that receives events tied to focus, such as key events.
\inmodule QtCore
Definition qobject.h:103
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
\inmodule QtCore\reentrant
Definition qrect.h:30
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
static QString fromLatin1(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qstring.cpp:5871
QString text
Combined button and popup list for selecting options.
constexpr QBindableInterface iface
Definition qproperty.h:666
#define qApp
GLint GLint GLint GLint GLint x
[0]
GLint GLsizei GLsizei height
GLuint index
[2]
GLuint object
[3]
GLint GLsizei width
GLint y
#define Q_ASSERT(cond)
Definition qrandom.cpp:47
#define Q_UNUSED(x)
const char className[16]
[1]
Definition qwizard.cpp:100
obj metaObject() -> className()
QObject::connect nullptr
edit isVisible()
QLayoutItem * child
[0]
aWidget window() -> setWindowTitle("New Window Title")
[2]