Compile with changes to the accessibility API.
Change-Id: I72e7636a02ad2fba984f4a96cbb33d441a7f8be7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
This commit is contained in:
parent
a7fd8696dd
commit
b9450734c9
@ -62,7 +62,7 @@ void MouseInterceptingGraphicsScene::mouseDoubleClickEvent(QGraphicsSceneMouseEv
|
|||||||
AccessibilitySceneManager *sceneManager = 0;
|
AccessibilitySceneManager *sceneManager = 0;
|
||||||
QAccessible::UpdateHandler previousUpdateHandler = 0;
|
QAccessible::UpdateHandler previousUpdateHandler = 0;
|
||||||
bool updateHandlerRecursion = false;
|
bool updateHandlerRecursion = false;
|
||||||
void accessibilityUpdateHandler(QObject *object, int who, QAccessible::Event reason)
|
void accessibilityUpdateHandler(QAccessibleEvent *event)
|
||||||
{
|
{
|
||||||
if (updateHandlerRecursion)
|
if (updateHandlerRecursion)
|
||||||
return;
|
return;
|
||||||
@ -70,13 +70,13 @@ void accessibilityUpdateHandler(QObject *object, int who, QAccessible::Event rea
|
|||||||
updateHandlerRecursion = true;
|
updateHandlerRecursion = true;
|
||||||
|
|
||||||
if (sceneManager) {
|
if (sceneManager) {
|
||||||
sceneManager->handleUpdate(object, reason);
|
sceneManager->handleUpdate(event);
|
||||||
|
|
||||||
//qDebug() << "update";
|
//qDebug() << "update";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (previousUpdateHandler) // call prev just to be sure.
|
if (previousUpdateHandler) // call prev just to be sure.
|
||||||
previousUpdateHandler(object, who, reason);
|
previousUpdateHandler(event);
|
||||||
|
|
||||||
updateHandlerRecursion = false;
|
updateHandlerRecursion = false;
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,6 @@ void AccessibilitySceneManager::updateAccessibilitySceneItemFlags()
|
|||||||
if (!interface)
|
if (!interface)
|
||||||
continue;
|
continue;
|
||||||
updateItemFlags(m_graphicsItems.value(object), interface);
|
updateItemFlags(m_graphicsItems.value(object), interface);
|
||||||
delete interface;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,15 +88,18 @@ void AccessibilitySceneManager::populateAccessibilityTreeScene()
|
|||||||
populateAccessibilityTreeScene(rootInterface);
|
populateAccessibilityTreeScene(rootInterface);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event reason)
|
void AccessibilitySceneManager::handleUpdate(QAccessibleEvent *event)
|
||||||
{
|
{
|
||||||
|
QObject *object = event->object();
|
||||||
|
QAccessible::Event type = event->type();
|
||||||
|
|
||||||
QAccessibleInterface *interface = QAccessible::queryAccessibleInterface(object);
|
QAccessibleInterface *interface = QAccessible::queryAccessibleInterface(object);
|
||||||
if (!interface)
|
if (!interface)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString name = interface->text(QAccessible::Name);
|
QString name = interface->text(QAccessible::Name);
|
||||||
|
|
||||||
if (reason == QAccessible::ObjectCreated) {
|
if (type == QAccessible::ObjectCreated) {
|
||||||
// qDebug() << "ObjectCreated" << object << name;
|
// qDebug() << "ObjectCreated" << object << name;
|
||||||
populateAccessibilityScene(interface, m_scene);
|
populateAccessibilityScene(interface, m_scene);
|
||||||
}
|
}
|
||||||
@ -109,7 +111,7 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reason == QAccessible::LocationChanged) {
|
if (type == QAccessible::LocationChanged) {
|
||||||
|
|
||||||
//if (name.startsWith("List"))
|
//if (name.startsWith("List"))
|
||||||
qDebug() << "locationChange" << object << name << interface->rect();
|
qDebug() << "locationChange" << object << name << interface->rect();
|
||||||
@ -119,12 +121,10 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
|
|||||||
QAccessibleInterface *child = interface->child(i);
|
QAccessibleInterface *child = interface->child(i);
|
||||||
if (child) {
|
if (child) {
|
||||||
updateItem(m_graphicsItems.value(child->object()), child);
|
updateItem(m_graphicsItems.value(child->object()), child);
|
||||||
delete child;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete interface;
|
} else if (type == QAccessible::ObjectDestroyed) {
|
||||||
} else if (reason == QAccessible::ObjectDestroyed) {
|
|
||||||
// qDebug() << "ObjectDestroyed" << object << name;
|
// qDebug() << "ObjectDestroyed" << object << name;
|
||||||
delete m_graphicsItems.value(object);
|
delete m_graphicsItems.value(object);
|
||||||
m_graphicsItems.remove(object);
|
m_graphicsItems.remove(object);
|
||||||
@ -132,28 +132,25 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
|
|||||||
if (object == m_selectedObject) {
|
if (object == m_selectedObject) {
|
||||||
m_selectedObject = 0;
|
m_selectedObject = 0;
|
||||||
}
|
}
|
||||||
} else if (reason == QAccessible::ObjectHide) {
|
} else if (type == QAccessible::ObjectHide) {
|
||||||
// qDebug() << "ObjectCreated Hide" << object;
|
// qDebug() << "ObjectCreated Hide" << object;
|
||||||
updateItemFlags(item, interface);
|
updateItemFlags(item, interface);
|
||||||
} else if (reason == QAccessible::ObjectShow) {
|
} else if (type == QAccessible::ObjectShow) {
|
||||||
// qDebug() << "ObjectCreated Show" << object;
|
// qDebug() << "ObjectCreated Show" << object;
|
||||||
updateItemFlags(item, interface);
|
updateItemFlags(item, interface);
|
||||||
} else if (reason == QAccessible::ScrollingStart) {
|
} else if (type == QAccessible::ScrollingStart) {
|
||||||
qDebug() << "ObjectCreated ScrollingStart" << object;
|
qDebug() << "ObjectCreated ScrollingStart" << object;
|
||||||
QAccessibleInterface *child = 0;
|
|
||||||
for (int i = 0; i < interface->childCount(); ++i) {
|
for (int i = 0; i < interface->childCount(); ++i) {
|
||||||
QAccessibleInterface *child = interface->child(i);
|
QAccessibleInterface *child = interface->child(i);
|
||||||
if (child) {
|
if (child) {
|
||||||
m_animatedObjects.insert(child->object());
|
m_animatedObjects.insert(child->object());
|
||||||
delete child;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (reason == QAccessible::ScrollingEnd) {
|
} else if (type == QAccessible::ScrollingEnd) {
|
||||||
// qDebug() << "ObjectCreated ScrollingEnd" << object;
|
// qDebug() << "ObjectCreated ScrollingEnd" << object;
|
||||||
foreach (QObject *object, m_animatedObjects) {
|
foreach (QObject *object, m_animatedObjects) {
|
||||||
updateItem(m_graphicsItems.value(object), interface);
|
updateItem(m_graphicsItems.value(object), interface);
|
||||||
}
|
}
|
||||||
delete interface;
|
|
||||||
m_animatedObjects.clear();
|
m_animatedObjects.clear();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -197,10 +194,7 @@ void AccessibilitySceneManager::updateItems(QObject *root)
|
|||||||
for (int i = 0; i < interface->childCount(); ++i) {
|
for (int i = 0; i < interface->childCount(); ++i) {
|
||||||
QAccessibleInterface *child = interface->child(i);
|
QAccessibleInterface *child = interface->child(i);
|
||||||
updateItems(child->object());
|
updateItems(child->object());
|
||||||
delete child;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delete interface;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccessibilitySceneManager::updateItem(QObject *object)
|
void AccessibilitySceneManager::updateItem(QObject *object)
|
||||||
@ -213,8 +207,6 @@ void AccessibilitySceneManager::updateItem(QObject *object)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
updateItem(m_graphicsItems.value(object), interface);
|
updateItem(m_graphicsItems.value(object), interface);
|
||||||
|
|
||||||
delete interface;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccessibilitySceneManager::updateItem(QGraphicsRectItem *item, QAccessibleInterface *interface)
|
void AccessibilitySceneManager::updateItem(QGraphicsRectItem *item, QAccessibleInterface *interface)
|
||||||
@ -332,7 +324,6 @@ void AccessibilitySceneManager::populateAccessibilityScene(QAccessibleInterface
|
|||||||
QAccessibleInterface *child = interface->child(i);
|
QAccessibleInterface *child = interface->child(i);
|
||||||
updateItems(child->object());
|
updateItems(child->object());
|
||||||
populateAccessibilityScene(child, scene);
|
populateAccessibilityScene(child, scene);
|
||||||
delete child;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +342,6 @@ AccessibilitySceneManager::TreeItem AccessibilitySceneManager::computeLevels(QAc
|
|||||||
TreeItem childLevel = computeLevels(child, level + 1);
|
TreeItem childLevel = computeLevels(child, level + 1);
|
||||||
currentLevel.children.append(childLevel);
|
currentLevel.children.append(childLevel);
|
||||||
currentLevel.width += childLevel.width + m_treeItemHorizontalPadding;
|
currentLevel.width += childLevel.width + m_treeItemHorizontalPadding;
|
||||||
delete child;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,11 +475,7 @@ bool AccessibilitySceneManager::isHidden(QAccessibleInterface *interface)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QAccessibleInterface *parent = current->parent();
|
current = current->parent();
|
||||||
|
|
||||||
if (current != interface)
|
|
||||||
delete current;
|
|
||||||
current = parent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -63,7 +63,7 @@ public slots:
|
|||||||
void populateAccessibilityScene();
|
void populateAccessibilityScene();
|
||||||
void updateAccessibilitySceneItemFlags();
|
void updateAccessibilitySceneItemFlags();
|
||||||
void populateAccessibilityTreeScene();
|
void populateAccessibilityTreeScene();
|
||||||
void handleUpdate(QObject *object, QAccessible::Event reason);
|
void handleUpdate(QAccessibleEvent *event);
|
||||||
void setSelected(QObject *object);
|
void setSelected(QObject *object);
|
||||||
|
|
||||||
void changeScale(int scale);
|
void changeScale(int scale);
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include "screenreader.h"
|
#include "screenreader.h"
|
||||||
#include "optionswidget.h"
|
#include "optionswidget.h"
|
||||||
#include "accessibilityscenemanager.h"
|
#include "accessibilityscenemanager.h"
|
||||||
|
#include <private/qaccessible2_p.h>
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
|
|
||||||
ScreenReader::ScreenReader(QObject *parent) :
|
ScreenReader::ScreenReader(QObject *parent) :
|
||||||
@ -54,8 +55,6 @@ ScreenReader::ScreenReader(QObject *parent) :
|
|||||||
|
|
||||||
ScreenReader::~ScreenReader()
|
ScreenReader::~ScreenReader()
|
||||||
{
|
{
|
||||||
delete m_selectedInterface;
|
|
||||||
delete m_rootInterface;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenReader::setRootObject(QObject *rootObject)
|
void ScreenReader::setRootObject(QObject *rootObject)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user