aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2012-12-12 11:49:21 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-04 14:16:18 +0100
commitdde63b7c5a05a2f23458ad43b7b29c2354b10dc3 (patch)
tree5972b2002af3a067ec40eda9eb18ac8da624b896 /src/plugins
parentda0613abb2ac4966c87a8d92f68488744fabe64b (diff)
Accessibility: Work with QQuickWindow
Before we would only be accessible when QQView was used. While the window has the content item, that one will not appear in the hierarchy of accessible objects since it has no valueable properties to expose. Instead it's first child will be used (which was the case before when QQView was used). Change-Id: I03cefb5c8dcd8296d51ff2bfcb677386a5f1d698 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/accessible/quick/accessible.json2
-rw-r--r--src/plugins/accessible/quick/main.cpp8
-rw-r--r--src/plugins/accessible/quick/qaccessiblequickview.cpp46
-rw-r--r--src/plugins/accessible/quick/qaccessiblequickview.h10
4 files changed, 37 insertions, 29 deletions
diff --git a/src/plugins/accessible/quick/accessible.json b/src/plugins/accessible/quick/accessible.json
index 845a45aa78..b21218f19c 100644
--- a/src/plugins/accessible/quick/accessible.json
+++ b/src/plugins/accessible/quick/accessible.json
@@ -1,3 +1,3 @@
{
- "Keys": [ "QQuickView", "QQuickItem" ]
+ "Keys": [ "QQuickWindow", "QQuickItem" ]
}
diff --git a/src/plugins/accessible/quick/main.cpp b/src/plugins/accessible/quick/main.cpp
index cac5d7e58d..019c84fc6e 100644
--- a/src/plugins/accessible/quick/main.cpp
+++ b/src/plugins/accessible/quick/main.cpp
@@ -44,7 +44,7 @@
#include "qaccessiblequickview.h"
#include "qaccessiblequickitem.h"
-#include <QtQuick/QQuickView>
+#include <QtQuick/QQuickWindow>
#include <QtQuick/QQuickItem>
#include <QtQuick/private/qquickitem_p.h>
#include <QtQuick/private/qquickaccessibleattached_p.h>
@@ -77,15 +77,15 @@ AccessibleQuickFactory::AccessibleQuickFactory()
QStringList AccessibleQuickFactory::keys() const
{
QStringList list;
- list << QLatin1String("QQuickView");
+ list << QLatin1String("QQuickWindow");
list << QLatin1String("QQuickItem");
return list;
}
QAccessibleInterface *AccessibleQuickFactory::create(const QString &classname, QObject *object)
{
- if (classname == QLatin1String("QQuickView")) {
- return new QAccessibleQuickView(qobject_cast<QQuickView *>(object)); // FIXME
+ if (classname == QLatin1String("QQuickWindow")) {
+ return new QAccessibleQuickWindow(qobject_cast<QQuickWindow *>(object));
} else if (classname == QLatin1String("QQuickItem")) {
QQuickItem *item = qobject_cast<QQuickItem *>(object);
Q_ASSERT(item);
diff --git a/src/plugins/accessible/quick/qaccessiblequickview.cpp b/src/plugins/accessible/quick/qaccessiblequickview.cpp
index 0106a3d68b..f70a41c6e2 100644
--- a/src/plugins/accessible/quick/qaccessiblequickview.cpp
+++ b/src/plugins/accessible/quick/qaccessiblequickview.cpp
@@ -53,52 +53,59 @@
QT_BEGIN_NAMESPACE
-QAccessibleQuickView::QAccessibleQuickView(QQuickView *object)
+QAccessibleQuickWindow::QAccessibleQuickWindow(QQuickWindow *object)
:QAccessibleObject(object)
{
}
-int QAccessibleQuickView::childCount() const
+QQuickItem *QAccessibleQuickWindow::rootItem() const
{
- return view()->contentItem() ? 1 : 0;
+ if (window()->contentItem())
+ return window()->contentItem()->childItems().first();
+ return 0;
}
-QAccessibleInterface *QAccessibleQuickView::parent() const
+int QAccessibleQuickWindow::childCount() const
+{
+ return rootItem() ? 1 : 0;
+}
+
+QAccessibleInterface *QAccessibleQuickWindow::parent() const
{
// FIXME: for now we assume to be a top level window...
return QAccessible::queryAccessibleInterface(qApp);
}
-QAccessibleInterface *QAccessibleQuickView::child(int index) const
+QAccessibleInterface *QAccessibleQuickWindow::child(int index) const
{
if (index == 0) {
- if (QQuickItem *declarativeRoot = view()->rootObject())
+ if (QQuickItem *declarativeRoot = rootItem())
return new QAccessibleQuickItem(declarativeRoot);
}
return 0;
}
-QAccessible::Role QAccessibleQuickView::role() const
+QAccessible::Role QAccessibleQuickWindow::role() const
{
return QAccessible::Window; // FIXME
}
-QAccessible::State QAccessibleQuickView::state() const
+QAccessible::State QAccessibleQuickWindow::state() const
{
QAccessible::State st;
- if (view() == QGuiApplication::focusWindow())
+ if (window() == QGuiApplication::focusWindow())
st.active = true;
- if (!view()->isVisible())
+ if (!window()->isVisible())
st.invisible = true;
return st;
}
-QRect QAccessibleQuickView::rect() const
+QRect QAccessibleQuickWindow::rect() const
{
- return QRect(view()->x(), view()->y(), view()->width(), view()->height());
+ return QRect(window()->x(), window()->y(), window()->width(), window()->height());
}
-QString QAccessibleQuickView::text(QAccessible::Text text) const
+QString QAccessibleQuickWindow::text(QAccessible::Text text) const
{
#ifdef Q_ACCESSIBLE_QUICK_ITEM_ENABLE_DEBUG_DESCRIPTION
if (text == QAccessible::DebugDescription) {
@@ -107,7 +114,7 @@ QString QAccessibleQuickView::text(QAccessible::Text text) const
#else
Q_UNUSED(text)
#endif
- return view()->title();
+ return window()->title();
}
@@ -152,10 +159,10 @@ static QQuickItem *childAt_helper(QQuickItem *item, int x, int y)
return 0;
}
-QAccessibleInterface *QAccessibleQuickView::childAt(int x, int y) const
+QAccessibleInterface *QAccessibleQuickWindow::childAt(int x, int y) const
{
- Q_ASSERT(view());
- QQuickItem *root = view()->contentItem();
+ Q_ASSERT(window());
+ QQuickItem *root = rootItem();
if (root) {
if (QQuickItem *item = childAt_helper(root, x, y))
return QAccessible::queryAccessibleInterface(item);
@@ -164,15 +171,14 @@ QAccessibleInterface *QAccessibleQuickView::childAt(int x, int y) const
return 0;
}
-int QAccessibleQuickView::indexOfChild(const QAccessibleInterface *iface) const
+int QAccessibleQuickWindow::indexOfChild(const QAccessibleInterface *iface) const
{
if (iface) {
- QQuickItem *declarativeRoot = view()->rootObject();
+ QQuickItem *declarativeRoot = rootItem();
if (declarativeRoot == iface->object())
return 0;
}
return -1;
-
}
QT_END_NAMESPACE
diff --git a/src/plugins/accessible/quick/qaccessiblequickview.h b/src/plugins/accessible/quick/qaccessiblequickview.h
index 03061be275..2b01b18f3c 100644
--- a/src/plugins/accessible/quick/qaccessiblequickview.h
+++ b/src/plugins/accessible/quick/qaccessiblequickview.h
@@ -44,16 +44,16 @@
#include <QtGui/qaccessible2.h>
#include <QtGui/qaccessibleobject.h>
-#include <QtQuick/qquickview.h>
+#include <QtQuick/qquickwindow.h>
QT_BEGIN_NAMESPACE
#ifndef QT_NO_ACCESSIBILITY
-class QAccessibleQuickView : public QAccessibleObject
+class QAccessibleQuickWindow : public QAccessibleObject
{
public:
- QAccessibleQuickView(QQuickView *object);
+ QAccessibleQuickWindow(QQuickWindow *object);
QAccessibleInterface *parent() const;
QAccessibleInterface *child(int index) const;
@@ -66,8 +66,10 @@ public:
int indexOfChild(const QAccessibleInterface *iface) const;
QString text(QAccessible::Text text) const;
QAccessibleInterface *childAt(int x, int y) const;
+
private:
- QQuickView *view() const { return static_cast<QQuickView*>(object()); }
+ QQuickWindow *window() const { return static_cast<QQuickWindow*>(object()); }
+ QQuickItem *rootItem() const;
};
#endif // QT_NO_ACCESSIBILITY